【问题标题】:How can I prevent AppDomainUnloadedException after NUnit tests PLINQ code?NUnit 测试 PLINQ 代码后如何防止 AppDomainUnloadedException?
【发布时间】:2009-08-27 10:28:48
【问题描述】:

如何诊断和最小化或预防AppDomainUnloadedException

在涉及 PLINQ 的长时间 (>10 秒) 测试之后,NUnit 2.5.2 始终抛出 AppDomainUnloadedException

早在 2008 年 7 月,Stephen Toub said:

是的,调度程序在 CTP 不能很好地处理线程中止,这经常导致 当域中存在实时调度程序时崩溃的进程 关闭(因为 AppDomain 关闭会导致所有线程中止 该域中具有堆栈帧的线程)。我们正在努力加强 这是为了将来的版本。

我尝试了很多解决方法,包括:

  • 以单独的方法运行测试以消除杂散引用
  • /domain:None 指定为 NUUnit 参数
  • nunit-console.exe.config 中删除legacyUnhandledAppDomainPolicy 元素

我无法将 NUnit 降级为 reduce the odds of the race condition,因为我需要 PLINQ 来加快我的参数测试。没有问题的 NUnit 版本不支持参数测试。

【问题讨论】:

标签: .net nunit appdomain plinq parallel-extensions


【解决方案1】:

根据this PLINQ Task Manager thread on the MSDN forums,你的问题应该解决了;随着 .NET 框架的最新版本,PLINQ 的任务管理器已经在 AppDomain 卸载时完全关闭。

您还在为 .NET 4 或 4.5 遇到这个问题吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-12
    • 2013-11-05
    • 2018-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多