C# 泄露AppDomain有多糟糕?

C# 泄露AppDomain有多糟糕?,c#,appdomain,mutation-testing,C#,Appdomain,Mutation Testing,我使用AppDomain隔离程序集加载,在某些情况下,AppDomain.Unload(customDomain)永远不会返回(我怀疑这是由于某些线程的使用) 我计划将AppDomain.Unload调用放在一个单独的任务中,计时,如果在x毫秒内什么都没有发生,我就继续。我也可以重新启动这个过程,但成本更高。那么AppDomain泄漏有多严重 对于上下文:我通过编程更改程序集,将其写入磁盘,将其加载到新的appdomain中,对其运行一些测试,然后卸载appdomain并使用新版本的程序集重新启

我使用AppDomain隔离程序集加载,在某些情况下,AppDomain.Unload(customDomain)永远不会返回(我怀疑这是由于某些线程的使用)

我计划将AppDomain.Unload调用放在一个单独的任务中,计时,如果在x毫秒内什么都没有发生,我就继续。我也可以重新启动这个过程,但成本更高。那么AppDomain泄漏有多严重


对于上下文:我通过编程更改程序集,将其写入磁盘,将其加载到新的appdomain中,对其运行一些测试,然后卸载appdomain并使用新版本的程序集重新启动相同的例程。

请看这里:@rinukkusu thk you,我看到了这个,但我不能更改加载的代码以符合我的用法,因为我的程序的全部目的是编程。我更改代码是为了创建错误,这些更改是精确定义的,我不能手动编辑测试的代码。@rbm是的,我不喜欢泄漏,但我想知道AppDomain泄漏的含义是什么。其负面影响包括内存使用、文件被锁定,以及一些CLR数据结构可能随着时间的推移而变慢(例如o(n^2))。你在想别的事情吗?@usr mmmm我希望内存使用量会增加,但我没有想到锁定的文件!我认为这类问题可以部分避免,因为默认情况下,我的程序并行测试程序集的多个版本,因此对于这类并发问题,我希望用户(我有信心:D)以非并行模式显式运行程序,否则程序不会崩溃,但可能会产生误报结果。我不认为我会在我的代码中进一步讨论这个问题,因为那时我必须处理所有类型的并发性问题(比如DB访问)