以下のコードでは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