我试图卸载一个Application域但我的应用程序停止工作

时间:2017-07-24 19:29:54

标签: c# wpf appdomain

我创建了一个新的应用程序域并将我的程序集加载到其中。

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

一切顺利。应用程序使用资源字典等,但当我尝试使用此代码卸载dll释放内存时,我的应用程序关闭,没有任何错误或警告:

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

输出窗口在突然退出后显示:

  

类型'System.AppDomainUnloadedException'的第一次机会异常   发生在mscorlib.dll类型的第一次机会异常   mscorlib.dll中出现'System.AppDomainUnloadedException'   线程'vshost.RunParkingWindow'(0x1df8)已退出,代码为0   (为0x0)。线程''(0xfcc)已退出,代码为0(0x0)。

1 个答案:

答案 0 :(得分:2)

  

类型' System.AppDomainUnloadedException'的第一次机会异常。   发生在mscorlib.dll

如果您收到AppDomainUnloadedException,则可以忽略这一点,因为卸载Application Domain时会抛出AppDomainUnloadedException,这就是您想要的。

来自msdn

  

尝试访问时抛出的异常   卸载的应用程序域