27

この質問にはすでに答えがあります。

だから私は直接イベントを呼び出すのではなく、それについて読みました

if (SomeEvent != null)
   SomeEvent(this, null);

すべきだ

SomeEventHandler temp = SomeEvent;
if (temp != null)
    temp(this, null);

これはなぜですか。 2番目のバージョンはどのようにスレッドセーフになりますか?ベストプラクティスは何ですか?


  • ここで、暫定的で修飾された答えを読み進めると、C#でのイベント処理は密接に関連し、エラーが発生しやすく、よく理解されていないということがわかります。 - micahhoover

リンクされた質問


関連する質問

最近の質問