Condividi tramite


SpinLock.Enter(Boolean) Metodo

Definizione

Acquisisce il blocco in modo affidabile, in modo tale che anche se si verifica un'eccezione all'interno della chiamata al metodo, è possibile esaminare l'oggetto lockTaken in maniera 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 è stato acquisito. In caso contrario, False. Prima di chiamare questo metodo è necessario inizializzare lockTaken su False.

Eccezioni

È necessario inizializzare l'argomento lockTaken su False prima della chiamata a Enter.

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

Commenti

SpinLock è un blocco non reentrante, ovvero se un thread contiene il blocco, non è consentito immettere nuovamente il blocco. Se il rilevamento della proprietà del thread è abilitato (se è abilitato tramite IsThreadOwnerTrackingEnabled), viene 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 chiamato Exit Enter prima lo stato interno di può SpinLock diventare danneggiato.

Si applica a

Vedi anche