l'approccio che ho usato, e penso sia corretto, lo è
volatile bool b = false;
.. rarely signal an update with a large state change...
lock b_lock
{
b = true;
}
... another thread ...
if(b)
{
lock b_lock
{
if(b)
{
b = false;
}
}
}
l'obiettivo era fondamentalmente quello di evitare di dover bloccare ripetutamente un oggetto a ogni iterazione solo per verificare se era necessario bloccarlo per fornire una grande quantità di informazioni sul cambiamento di stato che si verificano raramente. Penso che questo approccio funzioni. E se è richiesta una coerenza assoluta, penso che volatile sarebbe appropriato su b bool.