Po czytałem this pytanie z an answer z wytłoków ....Blokowanie pola lub zmiennej lokalnej?
czasem widzę ludzi blokowania na zmiennej lokalnej .
Czy ten kod jest uszkodzony?
public void Do()
{
object o = new Object();
lock (o)
{
...
}
}
wierzę object o = new Object();
powinny być poza metoda jako Field
.
Ponieważ każdy wątek otrzymuje nowe wystąpienie o
, będzie wiele zamków.
Czego mi tu brakuje? Czy nie powinien on blokować pól w tym konkretnym przypadku?
to nie musi być statyczne. (chyba że celowanie w inną instancję) –
czyniąc ją statyczną tylko do odczytu, nie szkodzi, tylko ją zabezpiecza (nawet jeśli nie jest wymagana). – Tilak
Uzgodnione. To nie musi być statyczne. Zależy od tego, co chronisz. –