Domaines d'application et threads
Un domaine d'application forme une limite d'isolation pour la sécurité, le suivi des versions, la fiabilité et le déchargement de code managé. Les threads constituent la construction du système d'exploitation utilisée par le Common Language Runtime pour exécuter le code. Au moment de l'exécution, l'ensemble du code managé est chargé dans un domaine d'application et exécuté par un thread managé.
Il n'existe pas de corrélation un-à-un entre les domaines d'application et les threads. Plusieurs threads peuvent s'exécuter dans un seul domaine d'application à tout moment donné et un thread particulier n'est pas limité à un seul domaine d'application. En d'autres termes, les threads sont libres de franchir les limites de domaine d'application et un nouveau n'est pas créé pour chaque domaine d'application.
À tout moment donné, chaque thread s'exécute dans un domaine d'application. Aucun, un ou plusieurs threads peuvent s'exécuter dans n'importe quel domaine d'application donné. Le runtime assure le suivi des threads s'exécutant dans les domaines d'application. Vous pouvez rechercher le domaine dans lequel un thread s'exécute à tout moment en appelant la méthode GetDomain.
Domaines d'application et cultures
Vous pouvez joindre un objet CultureInfo à un thread. Toutefois, pour empêcher du code malveillant d'entrer dans d'autres domaines d'application, l'objet CultureInfo prend automatiquement la valeur de lecture seule, lorsque son thread traverse une limite de domaine d'application.
Si l'objet CultureInfo a été personnalisé, par exemple avec un Calendarpersonnalisé, une InvalidOperationException est levée lorsque le thread tente de traverser une limite de domaine d'application.