Domanda

[ThreadStatic]
private static Foo _foo;

public static Foo CurrentFoo {
   get {
     if (_foo == null) {
         _foo = new Foo();
     }
     return _foo;
   }
}

è il filo precedente codice di sicurezza? O abbiamo bisogno di bloccare il metodo?

È stato utile?

Soluzione

Se la sua ThreadStatic c'è una copia per thread. Quindi, per definizione, la sua thread-safe.

Questo blog ha alcune utili informazioni su ThreadStatic.

Altri suggerimenti

Un [ThreadStatic] è compilatore / magia lingua per la memorizzazione locale thread. In altre parole, è destinato alla filettatura, quindi, anche se esiste un contesto interruttore non importa perché nessun altro thread può accedere direttamente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top