【发布时间】:2012-07-12 18:22:40
【问题描述】:
我们有一个面向 .Net Framework 4.0 的 Windows 窗体应用程序。安装 .Net Framework 4.5 后,应用程序开始崩溃。我们将不得不调查崩溃,我们很可能不得不在我们这边解决问题。但是,在我们准备好使用 .Net 4.5 之前,我们可以打开一个设置来保持旧的行为吗?
2012 年 7 月 12 日更新: 我们发现导致应用程序崩溃的重大更改:给定 System.Threading.Timer,当使用已关闭的句柄调用 Dispose(WaitHandle) 时,Timer 会尝试向引发异常的 WaitHandle 发出信号。 Timer 的 .Net 4.0 实现可以容忍这种情况,但 4.5 不能。
我们这边有一个错误;我们没有任何充分的理由给它一个关闭的句柄,所以我们会修复它......直到我们发现另一个错误......
【问题讨论】:
-
您的项目是否设置为“.NET framework 4.0”?
-
@Sly 我来自 .NET Framework 兼容性团队。能否给我发一份关于 Microsoft dot com 的 netfx45compat 的复制品,以便我看一看?
-
@Varun:repro 是我写的。只需将关闭的 WaitHandle 实例传递给 Dispose 方法或 Timer。
-
@Sly 你能通过 Microsoft dot com 的 netfx45compat 与我联系吗?
-
@Sly:你应该发布你的更新作为这个问题的答案。