我对应用程序域的概念了解不多。我们可以删除appdomain来卸载dll。 是否可以使用appdomain进行更好的异常处理?它是如何使用的?
答案 0 :(得分:1)
据我所知,在子AppDomains
中加载模块不会提供更好的异常处理。在AppDomain.UnhandledException Event的MSDN页面中,它注释:
从.NET Framework 2.0版开始,这个支持 子线程中未处理的异常被删除,因为 这种无声失败的累积效应包括性能 降级,损坏的数据和锁定,所有这些都很困难 调试。
这意味着即使代码在子AppDomain中执行,子线程中的未处理异常也会导致整个进程失效。
通常,子AppDomains
用于您提及的程序集卸载功能,以及用于在沙箱中执行代码(受限制的安全环境)。