20

WinForms アプリケーションでは、CheckForIllegalCrossThreadCallsを FALSE に設定して、デバッグ中のクロス スレッド エラーを回避するだけで安全ですか?

CheckForIllegalCrossThreadCalls = false;
4

1 に答える 1

34

いいえ、それは安全ではありません。スレッド化の誤りをチェックする Winforms コードは非常に重要であり、原因となる問題を診断するのは非常に困難です。最大の問題は、一貫した障害が発生しないことです。アプリはランダムに誤動作し、月に 1 回だけデッドロックまたはクラッシュします。または、マイナーな変更を加えるまでは、まったく行わないでください。または、特定のユーザーのマシンでのみ、コードの代わりにユーザーを非難します。

そもそも CheckForIllegalCrossThreadCalls プロパティが存在する唯一の理由は、このスレッドの安全性テストが実行されなかったバグのある .NET 1.x プログラムとの互換性を .NET 2.0 以降に維持するためです。バグに対する下位互換性 ;-P

于 2012-11-12T14:36:54.677 に答える