An AppDomain (домен приложения) - это изолированная среда, в которой выполняются приложения.
Они помогают обеспечить изоляцию,
разгрузка и границы безопасности для
выполнение управляемого кода.
Используйте домены приложений для изоляции задач, которые могут остановить процесс.
Если состояние AppDomain это
выполнение задачи становится нестабильным,
AppDomain может быть выгружен без
влияет на процесс. Это
важно, когда процесс должен выполняться для
длительные периоды без перезапуска. Вы
также можно использовать домены приложений для
изолировать задачи, которые не должны делиться
данные.
Если сборка загружена в домен приложения по умолчанию, она не может
выгружаться из памяти, пока
процесс запущен. Однако если вы
открыть второй домен приложения для
загрузить и выполнить сборку,
сборка выгружается при этом
домен приложения выгружен. использование
эта техника для минимизации работы
набор длительных процессов, которые
иногда использовать большие библиотеки DLL.
Может работать несколько доменов приложений
в одном процессе; однако есть
не один к одному корреляции между
домены приложений и темы.
Несколько потоков могут принадлежать одному
домен приложения, а пока данный
нить не ограничивается одним
домен приложения, в любой момент времени,
поток выполняется в одном
домен приложения.
ТАК Вопросы, которые могут быть интересны:
Я не буду заявлять, что являюсь экспертом в области доменов приложений, но я совершенно уверен, что утечка памяти в COM-объекте (т.е. неуправляемая память) не будет освобождена при выгрузке домена приложений. Возможно, кто-то более знакомый с этим мог бы прокомментировать.
Как указал Брайан, «... в домене .NET Framework версии 2.0 выгрузка не гарантируется, поскольку может быть невозможно прервать выполнение потоков.»