应用程序域如何在异常处理中有用?

问题描述:

我对应用领域的概念了解很少。我们可以删除appdomain来卸载dll。 是否有可能使用appdomain进行更好的异常处理?它如何使用?应用程序域如何在异常处理中有用?

据我所知加载子模块AppDomains不会提供更好的异常处理。在AppDomain.UnhandledException Event MSDN的页面就评论说:

与.NET Framework 2.0版开始,这个逆止在子线程 未处理的异常被删除,因为这样的无声故障的 累积效应包括性能 下降,损坏的数据和锁定,所有这些都难以调试 。

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

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