Compartir a través de


SpinLock.Enter(Boolean) Método

Definición

Adquiere el bloqueo de manera confiable de modo que, incluso si se produce una excepción en la llamada al método, se pueda examinar lockTaken de manera 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

Es true si se adquiere el bloqueo; de lo contrario, es false. lockTaken se debe inicializar en false antes de llamar a este método.

Excepciones

El argumento lockTaken se debe inicializar en false antes de llamar a Enter.

El seguimiento de propiedad de subprocesos 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 puede volver a introducir 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 entrar en un bloqueo ya mantenido, se producirá un interbloqueo.

Si llama a Exit sin haber llamado Enter primero al estado interno de SpinLock puede dañarse.

Se aplica a

Consulte también