Disons que j'ai un domaine d'application non par défaut. Je veux obtenir une référence au domaine d'application par défaut et provoquer la création d'un thread à l'intérieur de celui-ci, qui exécute un morceau de code. Est-ce possible? La seule façon de le faire est de recharger mon assembly dans le domaine de l'application Default et d'avoir de la logique dans l'un des constructeurs d'un type qui comprend qu'il a été rechargé pour lancer ce nouveau thread. Cela semble plutôt alambiqué. Y a-t-il une manière plus directe de faire cela? D'un autre côté, s'il y avait une façon de le faire, il semblerait que cela contournerait le modèle de sécurité entier de .NET.Est-il possible de provoquer la création d'un thread dans un autre domaine d'application?
2
A
Répondre
7
var ad = AppDomain.CreateDomain("mydomain");
ad.DoCallBack(() =>
{
var t = new System.Threading.Thread(() =>
{
Console.WriteLine();
Console.WriteLine("app domain = "
+ AppDomain.CurrentDomain.FriendlyName);
});
t.Start();
});
-1
Essayez this. Dans l'exemple, l'appel de GetAssemblyNames sur l'instance de l'hôte est appelé dans le second AppDomain. Cette méthode pourrait facilement démarrer un thread pour appeler votre code.