1. ホーム
  2. c#

[解決済み] C#でboolの読み書きはアトミックか?

2023-03-29 10:43:10

質問

へのアクセスは ブール フィールドへのアクセスはアトミックですか?特に、ロックをかける必要があるのでしょうか。

class Foo
{
   private bool _bar;

   //... in some function on any thread (or many threads)
   _bar = true;

   //... same for a read
   if (_bar) { ... }
}

どのように解決するのですか?

はい。

bool, char, byte, sbyte, short, ushort, uint, int, float, reference 型のデータ型は、読み書きがアトミックである。

にあるように C#言語仕様 .

編集部: また、このような場合にも volatile というキーワードがあります。