MSDN ha pronunciato la seguente avviso circa la blocco parola chiave in C#:Perché "lock (typeof (MyType))" è un problema?
In generale, evitare di bloccare su un tipo pubblico, o le istanze di fuori del controllo del vostro codice . I costrutti comuni bloccano (questo), blocco (typeof (MyType)), e blocco ("myLock") violano questa linea guida:
* lock (this) is a problem if the instance can be accessed publicly. * lock (typeof (MyType)) is a problem if MyType is publicly accessible.
Eppure dà alcuna motivazione solida per esso. Il blocco (questo) è spiegato here on SO. Mi interessa il caso di blocco (typeof (MyType)). Cosa c'è di pericoloso?
Grazie.
Anche se Jon Skeet è stato il primo, la tua risposta è stata più informativa e ha chiarito la confusione che avevo sul modo in cui funziona la dichiarazione di blocco, quindi ottieni una stella d'oro ... erm ... Voglio dire una casella di controllo verde :) Grazie . –
Grazie al cielo per gli Stati Uniti Handicapper General e il 211 °, 212 ° e 213 ° emendamenti che richiedono l'Harrison Bergeron-like Jon Skeet di usare una tastiera ricoperta di melassa per dare a tutti noi una possibilità di combattere. –
buona risposta. un modello comune che usiamo nel codice framework è di avere un campo istanza privato solo per il blocco: oggetto privato thisLock = new object(); per blocchi statici è possibile utilizzare un campo statico privato: oggetto statico privato staticLock = new object(); – alexdej