|
分類:[C#]
VS2015, C#6.0でコーディングしています。
プロパティをvolatileにできないという仕様について,代替策はあるのでしょうか?
これはOKです。
public volatile bool Hoge;
これはだめです。コンパイルできません。
public volatile bool Hoge { get; set; };
Hogeは複数のスレッドからアクセスされます。
プロパティをvolatileにできない理由について, ある程度調べてはみたものの, どうもvolatileそのものについての理解が足りていないのか, なぜこうできないのかわからなかったもので・・・。
プロパティの実態は,getterやsetterなどのメソッドなので フィールドと同じ扱いをすることはできないのだ という事のようですが, それだとマルチスレッドでプロパティを使うなということなのでしょうか。
プロパティをvolatileにできないならば, じゃあ代わりにどういう手段をとればいいのか という情報が見つかりませんでした。
「プロパティはvolatileにできないので,かわりに○○する」
皆さんからお知恵を拝借できれば幸いです。
|