以下のコードではread1
、 は常に と等しくなりますがread2
、提供されるプロパティFlag
は他のスレッドから変更できますか? ここでの懸念は、Flag
インライン化される可能性があることです。
private bool Flag {get; set;}
public void MultithreadedMethod()
{
var read1 = Flag;
/* some more code */
var read2 = Flag;
}
UPD : 実行中に他のスレッドがFlag
の値を変更する可能性があります/* some more code */
。この場合read1
、 とは異なるはずread2
です。それは常にそうでしょうか?インライン化すると、読み取り間で事実が変更されread1
たread2
にもかかわらず、プロパティが非揮発性フィールドに変わりませんか?Flag