Глава Стек потока
sidristij opened this issue · 6 comments
Здесь я предлагаю вести обсуждение главы. Ошибки, дополнения.
Missing images on https://github.com/sidristij/dotnetbook/blob/master/book/ru/ThreadStack.md
Images location https://github.com/sidristij/dotnetbook/blob/master/book/ru/imgs/ThreadStack/step1.png, but actual location is https://github.com/sidristij/dotnetbook/blob/master/book//imgs/ (no /ru)
Images paths fixed
Подскажите, а где код к главе?
Интересует вот эта строчка - var forked = Fork.CloneThread();
Добрый день!
Возник вопрос о передаче параметров через регистры.
Первое, что делает код, скомпилированный JIT'ом: он сохраняет параметры метода в стек (начиная с третьего). При этом первые два передаются через регистры. Тут важно помнить, что первым параметром экземплярных методов передаётся указатель на тот объект, с которым работает метод. Т.е. указатель this. Так что в этих (почти всех) случаях для регистров остаётся всего один параметр, а для всех остальных -- стек;
Что если первый параметр метода (второй после this) - структура, которая не помещается в регистр?
Ведь как мы знаем из главы Ссылочные и значимые типы данных
параметр, принимающий значимый тип хранит в себе именно значение, а не ссылку.
Поторопился с вопросом)
Далее в главе Ссылочные и значимые типы данных
написано о том, что каждое поле структуры - отдельный параметр метода. Вопрос решён)