SpinLock.Enter(Boolean) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.