[ThreadStatic] private static Foo _foo; public static Foo CurrentFoo { get { if (_foo == null) { _foo = new Foo(); } return _foo; } }
Il thread del codice precedente è sicuro? O dobbiamo bloccare il metodo?È un modo thread-safe per inizializzare una [ThreadStatic]?
Ecco da dove viene il mio esempio. Sto solo cercando di capire se è possibile che un thread ottenga _foo == null ma poi si verifica un cambio di thread e un altro thread _foo viene aggiornato anche se non è nullo? –
No. Uno _foo per thread, quindi gli switch di contesto non hanno alcun impatto. – Will