.Net создает 1 стек (для хранения типов значений) для каждой библиотеки DLL и EXE или 1 стек для каждой программы - PullRequest
0 голосов
/ 17 февраля 2012

Я создаю сервис, который будет использоваться программой презентации.Я нахожусь на грани определения моих типов как класса или структуры.Создает ли .Net 1 стек (для хранения типов значений) для каждой dll и exe или 1 стек для каждой программы.Я очень уверен, что он создает одну управляемую кучу для каждой программы, но не уверен в стеке.Пожалуйста, помогите мне.

Спасибо, Омкар

Ответы [ 2 ]

7 голосов
/ 17 февраля 2012

Во-первых Стек - это деталь реализации .

Как оказалось, в процессе есть 1 куча * и 1 стек потока , но вам не следует об этом беспокоиться и, конечно, не следует использовать это при выборе между классами и структурами.

См. Когда использовать struct в C #?

(*) Ну, в любом случае 1 управляемая куча.

2 голосов
/ 17 февраля 2012

Поскольку один стек вызовов может содержать вызовы из разных сборок, и каждый поток имеет свою собственную трассировку стека, очевидно, что в каждом потоке имеется только один стек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...