Anwendungsdomänen und Threads
Eine Anwendungsdomäne bildet eine Isolationsbegrenzung aus Gründen der Sicherheit, Versionszuweisung und Zuverlässigkeit sowie zum Entladen von verwaltetem Code. Threads werden vom Betriebssystem bereitgestellt und von der Common Language Runtime zum Ausführen von Code verwendet. Zur Laufzeit wird der gesamte verwaltete Code in eine Anwendungsdomäne geladen und von einem verwalteten Thread ausgeführt.
Es gibt keine eindeutige Korrelation zwischen Anwendungsdomänen und Threads. Es können jederzeit mehrere Threads in einer Anwendungsdomäne ausgeführt werden, wobei ein bestimmter Thread nicht einer einzelnen Anwendungsdomäne zugeordnet ist. Das heißt, dass Threads über die Grenzen von Anwendungsdomänen hinweg verwendet werden können. Es wird nicht für jede Anwendungsdomäne ein neuer Thread erstellt.
Zu jedem Zeitpunkt wird jeder Thread in einer Anwendungsdomäne ausgeführt. 0 (null), einer oder mehrere Threads können in jeder angegebenen Anwendungsdomäne ausgeführt werden. Die Laufzeit verfolgt, welche Threads in welchen Anwendungsdomänen ausgeführt werden. Sie können jederzeit bestimmen, in welcher Domäne ein Thread ausgeführt wird, indem Sie die GetDomain-Methode aufrufen.
Anwendungsdomänen und Kulturen
Sie können an einen Thread ein CultureInfo-Objekt anfügen. Um jedoch das Eindringen von bösartigem Code in anderen Anwendungsdomänen zu verhindern, wird das CultureInfo-Objekt automatisch auf schreibgeschützt festgelegt, wenn der zugehörige Thread die Grenze einer Anwendungsdomäne überschreitet.
Wenn das CultureInfo-Objekt angepasst wurde, z. B. mit einem angepassten Calendar, und der Thread die Grenze einer Anwendungsdomäne zu überschreiten versucht, wird eine InvalidOperationException ausgelöst.