SpinLock.Enter(Boolean) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Adquiere el bloqueo de forma confiable, de modo que, incluso si se produce una excepción dentro de la llamada al método, lockTaken se puede examinar de forma confiable para determinar si se adquirió el bloqueo.
public:
void Enter(bool % lockTaken);
public void Enter(ref bool lockTaken);
member this.Enter : bool -> unit
Public Sub Enter (ByRef lockTaken As Boolean)
Parámetros
- lockTaken
- Boolean
True si se adquiere el bloqueo; de lo contrario, false.
lockTaken debe inicializarse en false antes de llamar a este método.
Excepciones
El lockTaken argumento debe inicializarse en false antes de llamar a Enter.
El seguimiento de la propiedad del subproceso está habilitado y el subproceso actual ya ha adquirido este bloqueo.
Comentarios
SpinLock es un bloqueo no reentrante, lo que significa que si un subproceso contiene el bloqueo, no se permite entrar de nuevo en el bloqueo. Si el seguimiento de la propiedad del subproceso está habilitado (si está habilitado está disponible a través IsThreadOwnerTrackingEnabledde ), se producirá una excepción cuando un subproceso intente volver a escribir un bloqueo que ya contiene. Sin embargo, si el seguimiento de la propiedad del subproceso está deshabilitado, si se intenta introducir un bloqueo ya mantenido, se producirá un interbloqueo.
Si llama Exit sin haber llamado Enter primero al estado interno de puede SpinLock dañarse.