В.NET исполняемые файлы не обслуживаются прямо внутри процесса Windows, как это происходит в случае традиционных неуправляемых приложений. Вместо этого они обслуживаются в отдельном логическом разделе внутри процесса, который называется доменом приложения (Application Domain — AppDomain). В единственном процессе может содержаться несколько доменов приложений, каждый из которых обслуживает свой исполняемый файл.NET. Такое дополнительное подразделение традиционного процесса Windows предоставляет ряд преимуществ, главные из которых описаны ниже.
· Домены приложений унифицируют работу с программами в разных ОС
· Домены приложений менее дорогостоящи в плане потребления вычислительных ресурсов и памяти по сравнению с полноценными процессами. Благодаря этому CLR-среде удается загружать и выгружать домены приложений намного быстрее, чем формальные процессы, и тем самым значительно улучшать масштабируемость серверных приложений.
· Домены приложений обеспечивают более глубокий уровень изоляции для обслуживания загружаемого приложения. В случае выхода из строя какого-то одного домена приложения внутри процесса, остальные домены приложений все равно остаются работоспособными.
Для работы с доменами приложений используется класс System.AppDomain.
Некоторые члены класс AppDomain:
CreateDomain() | Создать новый домен в текущем процессе |
Createlnstance() | Создать экземпляр типа из внешней сборки, загрузив сборку в текущий домен приложения |
GetAssemblies() | Сборки.NET, загруженные в текущий домен приложения |
GetCurrentThreadld() | Идентификатор активного потока в текущем домене приложения |
Load() | Динамически загружает сборку в текущий домен приложения |
Unload() | Выгружает определенный домен приложения из процесса |
BaseDirectory | Каталог, относительно которого ведется поиск сборок |
CurrentDomain | Домен приложения для текущего потока |
FriendlyName | Имя текущего домена приложения |
Setuplnformation | Параметры определенного домена приложения |
Многопоточность. Классификация состояний потока. Средства многопоточного программирования System.Threading.
Для многопоточного программирования среда.NET предоставляет пространство имен System.Threading