2009-12-30 45 views
2

比方說,我有一個非默認的應用程序域。我想獲得對默認應用程序域的引用,並在其中創建一個線程,該線程運行一段代碼。這可能嗎?我認爲這樣做的唯一方法是將我的程序集重新加載到默認應用程序域中,並且在某個類型的構造函數中具有一些邏輯,該類型會指出爲了啓動此新線程而重新加載了該程序集。這似乎相當複雜。有沒有更直接的方法來做到這一點?另一方面,如果有這樣做的話,似乎會繞過.NET的整個安全模型。是否可以在另一個應用程序域中創建線程?

回答

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

嘗試this。在該示例中,主機實例上的GetAssemblyNames調用在第二個AppDomain中調用。該方法可以輕鬆啓動一個線程來調用您的代碼。

相關問題