1

我对应用程序域的概念知之甚少。我们可以删除appdomain来卸载dll。是否可以使用 appdomain 进行更好的异常处理?如何使用?

4

1 回答 1

1

据我所知,在 child 中加载模块AppDomains不会提供更好的异常处理。在AppDomain.UnhandledException Event的 MSDN 页面中,它指出:

从 .NET Framework 2.0 版开始,删除了对子线程中未处理异常的支持,因为这种静默故障的累积影响包括性能下降、数据损坏和锁定,所有这些都难以调试。

这意味着即使代码在子 AppDomain 中执行,子线程中未处理的异常也会导致整个进程停止运行。

通常 childAppDomains用于您提到的程序集卸载功能,以及在沙箱(受限安全环境)中执行代码。

于 2013-05-14T13:03:04.150 回答