volatile 修飾子 C#にはvolatileという修飾子がある。MSDNのC# リファレンスでは以下のように説明している。 volatile キーワードは、同時に実行中の複数のスレッドによってフィールドが変更される可能性があることを示します。 volatile と宣言されているフィールドは、シングル スレッドによるアクセスを前提とする、コンパイラの最適化の対象にはなりません。このため、フィールドには常に最新の値が含まれます。 volatile 修飾子は、通常、アクセスをシリアル化する lock ステートメント (C# リファレンス) ステートメントが使用されない場合に複数のスレッドによりアクセスされるフィールドに対して使用します。 まず、前半部分は他のスレッドより変更される可能性があるフィールドに対して最適化を禁止するためのもの、これはまあまあ想像できる。以下のようなコードでコンパイ