Partilhar via


SpinLock.Enter(Boolean) Método

Definição

Adquire o bloqueio de maneira confiável, de forma que mesmo se uma exceção ocorrer dentro da chamada de método, lockTaken poderá ser examinado com confiança 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 tiver sido adquirido; caso contrário, false. lockTaken deve ser inicializado como false antes de chamar esse método.

Exceções

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

O acompanhamento de propriedade de thread está habilitado e o thread atual há adquiriu este 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 por meio IsThreadOwnerTrackingEnabled), uma exceção será gerada quando um thread tentar inserir novamente um bloqueio que ele já contém. No entanto, se o controle de propriedade do thread estiver desabilitado, tentar 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