SpinLock.Enter(Boolean) Método

Definição

Adquire o bloqueio de forma fiável, de modo que, mesmo que ocorra uma exceção dentro da chamada do método, lockTaken possa ser examinado de forma fiá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

Verdade se o cadeado for adquirido; caso contrário, falso. lockTaken deve ser inicializado como false antes de chamar este método.

Exceções

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

O rastreio da propriedade da thread está ativado, e a thread atual já adquiriu este bloqueio.

Observações

SpinLock é um cadeado não reentrante, o que significa que, se um fio segurar o cadeado, não é permitido voltar a entrar nele. Se o rastreamento da propriedade da thread estiver ativado (se está ativado estiver disponível através de IsThreadOwnerTrackingEnabled), uma exceção será lançada quando uma thread tentar reintroduzir um bloqueio que já tem. No entanto, se o rastreio de propriedade de threads estiver desativado, tentar entrar num bloqueio já detido resultará em deadlock.

Se chamar Exit sem ter chamado Enter primeiro, o estado interno do SpinLock pode corromper-se.

Aplica-se a

Ver também