2017-07-24 74 views
2

我已經創建了一個新的應用程序域並將我的程序集加載到它。我試圖卸載一個應用程序域,但我的應用程序停止工作

Assembly assembly = dom.Load("bookOne"); 

一切順利。應用程序使用的資源字典等。但是當我試圖卸載DLL釋放內存與此代碼我的應用程序關閉沒有任何錯誤或警告:

try 
{ 
    AppDomain.Unload(dom); 
} 
catch (CannotUnloadAppDomainException) 
{ 
    Console.WriteLine("Book Unloaded!" + " 4"); 
    AppDomain.Unload(dom); 
    GC.Collect(); 
} 

輸出窗口突然退出後顯示了這些

類型「System.AppDomainUnloadedException」的第一次機會異常 發生型 「System.AppDomainUnloadedException」的mscorlib.dll中第一次機會異常出現在mscorlib.dll的 螺紋「vshost.RunParkingWindow」(0x1df8)已退出代碼爲0 (0x0)。線程''(0xfcc)已退出,代碼爲0(0x0)。

+0

您的意思是否關閉應用程序** **沒有錯誤或警告時引發的異常。你在事件日誌中得到什麼錯誤或警告?你能否抓住這個異常並記錄下來,理解你爲什麼不能卸載。而不是再次卸載。在您的ctach塊 –

+1

抱歉,輸出窗口日誌已添加到問題中。 – hemarn

回答

3

型「System.AppDomainUnloadedException」 的第一次機會異常出現在mscorlib.dll

如果您收到AppDomainUnloadedException,那麼你可以忽略這一點,因爲AppDomainUnloadedException被拋出時,應用程序域被卸載,這就是你想要的。

msdn

當試圖訪問一個 卸載應用程序域

+0

這是一個普通的異常,像ThreadInterruptedException等。 – hoodaticus

相關問題