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