我试图卸载应用程序域,但我的应用程序停止工作
Posted
技术标签:
【中文标题】我试图卸载应用程序域,但我的应用程序停止工作【英文标题】:I tried to unload an Application domain but my application stopped working 【发布时间】:2017-07-24 19:29:54 【问题描述】:我创建了一个新的应用程序域并将我的程序集加载到其中。
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 类型的第一次机会异常 'System.AppDomainUnloadedException' 发生在 mscorlib.dll 中 线程“vshost.RunParkingWindow”(0x1df8)已退出,代码为 0 (0x0)。线程 '' (0xfcc) 已退出,代码为 0 (0x0)。
【问题讨论】:
您的意思是应用程序关闭没有错误或警告。您在事件日志中收到什么错误或警告?您能否捕获异常并记录它以了解您无法卸载的原因。而不是再次卸载。在您的 ctach 块中 抱歉,已将输出窗口日志添加到问题中。 【参考方案1】:“System.AppDomainUnloadedException”类型的第一次机会异常 发生在 mscorlib.dll 中
如果您收到 AppDomainUnloadedException ,那么您可以忽略它,因为 AppDomainUnloadedException 在卸载应用程序域时抛出,这就是您想要的。
来自msdn
尝试访问 卸载的应用程序域
【讨论】:
这是那些无异常的异常之一,例如 ThreadInterruptedException 等。以上是关于我试图卸载应用程序域,但我的应用程序停止工作的主要内容,如果未能解决你的问题,请参考以下文章