【发布时间】:2013-05-07 11:10:42
【问题描述】:
我对应用领域的概念知之甚少。我们可以删除appdomain来卸载dll。 是否可以使用 appdomain 进行更好的异常处理?怎么用?
【问题讨论】:
标签: .net-4.0 appdomain applicationdomain
我对应用领域的概念知之甚少。我们可以删除appdomain来卸载dll。 是否可以使用 appdomain 进行更好的异常处理?怎么用?
【问题讨论】:
标签: .net-4.0 appdomain applicationdomain
据我所知,在子 AppDomains 中加载模块不会提供更好的异常处理。在 AppDomain.UnhandledException Event 的 MSDN 页面中,它指出:
从 .NET Framework 2.0 版开始,此支持用于 子线程中未处理的异常已被删除,因为 这种无声故障的累积影响包括性能 降级、损坏的数据和锁定,所有这些都是困难的 调试。
这意味着即使代码在子 AppDomain 中执行,子线程中未处理的异常也会导致整个进程停止。
通常子 AppDomains 用于您提到的程序集卸载功能,以及在沙箱(受限安全环境)中执行代码。
【讨论】: