MSDN da la siguiente advertencia sobre el bloqueo palabra clave en C#:¿Por qué "lock (typeof (MyType))" es un problema?
En general, evitar el bloqueo en un tipo de público o instancias fuera del control de su código . Las construcciones comunes bloqueo (este), bloqueo (typeof (MyType)), y bloqueo ("myLock") viola este directriz:
* lock (this) is a problem if the instance can be accessed publicly. * lock (typeof (MyType)) is a problem if MyType is publicly accessible.
Sin embargo, no da ninguna razón sólida para ello. El bloqueo (esto) se explica here on SO. Estoy interesado en el caso de bloqueo (typeof (MyType)). ¿Qué es peligroso al respecto?
Gracias.
Aunque Jon Skeet fue el primero, tu respuesta es más informativa y aclara una confusión que tuve sobre la forma en que funciona la instrucción de bloqueo, por lo que obtienes una estrella de oro ... erm ... quiero decir una casilla de verificación verde :) Gracias . –
Gracias a Dios por el Handicapper General de los Estados Unidos y las enmiendas 211, 212 y 213 que requieren que Jon Skeet, como Harrison Bergeron, use un teclado cubierto de melaza para dar al resto de nosotros una oportunidad de luchar. –
buena respuesta. un patrón común que usamos en el código de framework es tener un campo de instancia privada solo para el bloqueo: objeto privado thisLock = new object(); para bloqueos estáticos puede usar un campo estático privado: objeto estático privado staticLock = new object(); – alexdej