Czy właściwości mają lotny efekt?
W poniższym kodzie będzieread1
być zawsze równyread2
, pod warunkiem własnościFlag
można zmienić z innych wątków? Tu chodzi o toFlag
może zostać podkreślony.
private bool Flag {get; set;}
public void MultithreadedMethod()
{
var read1 = Flag;
/* some more code */
var read2 = Flag;
}
UPD: Niektóre inne wątki mogą się zmienićFlag
wartość podczas/* some more code */
wykonanie. W tym przypadkuread1
powinien być inny niżread2
. Czy to będziezawsze tak będzie? Nie będzie zmieniać pozycji w nieulotne pole, które spowodujeread1
być równymread2
pomimo tego faktuFlag
został zmieniony między odczytami?