変数「counter」があり、Interlockedを使用して「counter」の値にアクセスして設定するスレッドがいくつかあるとします。
int value = Interlocked.Increment(ref counter);
と
int value = Interlocked.Decrement(ref counter);
Interlockedによって行われた変更は、すべてのスレッドで表示されると思いますか?
そうでない場合は、すべてのスレッドで変数を同期させるにはどうすればよいですか?
編集:誰かが私に揮発性物質を使用するように提案しました。しかし、「カウンター」を揮発性として設定すると、「揮発性フィールドへの参照は揮発性として扱われません」というコンパイラの警告が表示されます。
オンラインヘルプを読んだとき、「通常、揮発性フィールドはrefまたはoutパラメーターを使用して渡されるべきではありません」と書かれていました。