sidristij/dotnetbook

Глава Стек потока

sidristij opened this issue · 6 comments

Здесь я предлагаю вести обсуждение главы. Ошибки, дополнения.

Images paths fixed

Подскажите, а где код к главе?
Интересует вот эта строчка - var forked = Fork.CloneThread();

Добрый день!
Возник вопрос о передаче параметров через регистры.

Первое, что делает код, скомпилированный JIT'ом: он сохраняет параметры метода в стек (начиная с третьего). При этом первые два передаются через регистры. Тут важно помнить, что первым параметром экземплярных методов передаётся указатель на тот объект, с которым работает метод. Т.е. указатель this. Так что в этих (почти всех) случаях для регистров остаётся всего один параметр, а для всех остальных -- стек;

Что если первый параметр метода (второй после this) - структура, которая не помещается в регистр?
Ведь как мы знаем из главы Ссылочные и значимые типы данных параметр, принимающий значимый тип хранит в себе именно значение, а не ссылку.

Поторопился с вопросом)
Далее в главе Ссылочные и значимые типы данных написано о том, что каждое поле структуры - отдельный параметр метода. Вопрос решён)