podejście, którego użyłem i uważam, że jest poprawne, to
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;
}
}
}
celem było po prostu uniknięcie konieczności ciągłego blokowania obiektu w każdej iteracji, tylko po to, aby sprawdzić, czy musimy go zablokować, aby zapewnić dużą ilość informacji o zmianie stanu, która występuje rzadko. Myślę, że to podejście działa. A jeśli wymagana jest absolutna spójność, myślę, że zmienna byłaby odpowiednia na b bool.