SpinLock.Enter(Boolean) Metodo

Definizione

Acquisisce il blocco in modo affidabile, in modo che, anche se si verifica un'eccezione all'interno della chiamata al metodo, lockTaken può essere esaminato in modo affidabile per determinare se il blocco è stato acquisito.

public:
 void Enter(bool % lockTaken);
public void Enter(ref bool lockTaken);
member this.Enter : bool -> unit
Public Sub Enter (ByRef lockTaken As Boolean)

Parametri

lockTaken
Boolean

True se il blocco viene acquisito; in caso contrario, false. lockTaken deve essere inizializzato su false prima di chiamare questo metodo.

Eccezioni

L'argomento lockTaken deve essere inizializzato su false prima di chiamare INVIO.

Il rilevamento della proprietà del thread è abilitato e il thread corrente ha già acquisito questo blocco.

Commenti

SpinLock è un blocco non reentrant, vale a dire che se un thread contiene il blocco, non è consentito immettere nuovamente il blocco. Se il rilevamento della proprietà del thread è abilitato (se è abilitato tramite IsThreadOwnerTrackingEnabled), verrà generata un'eccezione quando un thread tenta di immettere nuovamente un blocco che contiene già. Tuttavia, se il rilevamento della proprietà del thread è disabilitato, il tentativo di immettere un blocco già mantenuto comporterà un deadlock.

Se si chiama senza aver prima chiamato ExitEnter lo stato interno di può SpinLock diventare danneggiato.

Si applica a

Vedi anche