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 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.