Домены приложений и потоки
Обновлен: Ноябрь 2007
Домен приложения формирует изолированную область для безопасности, управления версиями, надежности и выгрузки управляемого кода. Потоки представляют собой структуры операционной системы, используемые в среде CLR для выполнения кода. Во время выполнения весь управляемый код загружается в домен приложения и выполняется в управляемом потоке.
Однозначного соответствия между потоками и доменами приложений не существует. Несколько потоков могут одновременно выполняться в одном домене приложений, при этом конкретный поток не ограничен пределами одного домена приложений. Таким образом, потоки могут использоваться в разных доменах приложений. Новый поток для каждого домена приложения не создается.
В любой момент времени каждый поток выполняется в домене приложения. В любом домене приложения может выполняться один, ни одного или несколько потоков. Среда выполнения отслеживает соответствие потоков и доменов приложений, в которых они исполняются. В любой момент времени можно найти домен, в котором выполняется поток, вызвав метод GetDomain.
Домены приложений и культуры
К потоку можно присоединить объект CultureInfo. Тем не менее, чтобы предотвратить проникновение зловредного кода в другие домены приложений, для объекта CultureInfo автоматически устанавливается в режим только для чтения, когда его поток пересекает границы домена приложения.
Если объект CultureInfo был изменен, например, с помощью измененного объекта Calendar, при попытке потока пересечь границу домена приложения создается исключение InvalidOperationException.