20

在 WinForms 应用程序中,将CheckForIllegalCrossThreadCalls设置为 FALSE 以避免调试期间出现跨线程错误是否安全?

CheckForIllegalCrossThreadCalls = false;
4

1 回答 1

34

不,那不安全。检查线程错误的 Winforms 代码非常重要,导致的故障极难诊断。最大的问题是它不会导致一致的失败,您的应用程序会随机出现异常行为,并且每月只会出现一次死锁或崩溃。或者根本不做,直到你做一个小的改变。或者只在特定用户的机器上,你会责怪用户而不是你的代码。

CheckForIllegalCrossThreadCalls 属性首先存在的唯一原因是保持 .NET 2.0 及更高版本与未执行此线程安全测试的有缺陷的 .NET 1.x 程序兼容。错误的向后兼容性;-P

于 2012-11-12T14:36:54.677 回答