WinForms アプリケーションでは、CheckForIllegalCrossThreadCallsを FALSE に設定して、デバッグ中のクロス スレッド エラーを回避するだけで安全ですか?
CheckForIllegalCrossThreadCalls = false;
WinForms アプリケーションでは、CheckForIllegalCrossThreadCallsを FALSE に設定して、デバッグ中のクロス スレッド エラーを回避するだけで安全ですか?
CheckForIllegalCrossThreadCalls = false;
いいえ、それは安全ではありません。スレッド化の誤りをチェックする Winforms コードは非常に重要であり、原因となる問題を診断するのは非常に困難です。最大の問題は、一貫した障害が発生しないことです。アプリはランダムに誤動作し、月に 1 回だけデッドロックまたはクラッシュします。または、マイナーな変更を加えるまでは、まったく行わないでください。または、特定のユーザーのマシンでのみ、コードの代わりにユーザーを非難します。
そもそも CheckForIllegalCrossThreadCalls プロパティが存在する唯一の理由は、このスレッドの安全性テストが実行されなかったバグのある .NET 1.x プログラムとの互換性を .NET 2.0 以降に維持するためです。バグに対する下位互換性 ;-P