2009-12-30 15 views
2

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?

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.