В приведенном ниже коде 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 был изменен между чтением?