SpinLock.Enter(Boolean) Método

Definição

Adquire o bloqueio de maneira confiável, de modo que, mesmo que ocorra uma exceção dentro da chamada de método, lockTaken possa ser examinada de forma confiável para determinar se o bloqueio foi adquirido.

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 se o bloqueio for adquirido; caso contrário, false. lockTaken deve ser inicializado como false antes de chamar esse método.

Exceções

O lockTaken argumento deve ser inicializado como false antes de chamar Enter.

O controle de propriedade do thread está habilitado e o thread atual já adquiriu esse bloqueio.

Comentários

SpinLock é um bloqueio não reentrante, o que significa que, se um thread mantiver o bloqueio, não será permitido inserir o bloqueio novamente. Se o controle de propriedade do thread estiver habilitado (se ele estiver habilitado estiver disponível por meio IsThreadOwnerTrackingEnabled), uma exceção será gerada quando um thread tentar inserir novamente um bloqueio que ele já mantém. No entanto, se o controle de propriedade do thread estiver desabilitado, a tentativa de inserir um bloqueio já mantido resultará em deadlock.

Se você ligar Exit sem ter chamado Enter primeiro o estado interno do SpinLock pode ficar corrompido.

Aplica-se a

Confira também