SpinLock.Enter(Boolean) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Uzyskuje blokadę w niezawodny sposób, tak aby nawet w przypadku wystąpienia wyjątku w wywołaniu metody można niezawodnie sprawdzić, lockTaken czy blokada została nabyta.
public:
void Enter(bool % lockTaken);
public void Enter(ref bool lockTaken);
member this.Enter : bool -> unit
Public Sub Enter (ByRef lockTaken As Boolean)
Parametry
- lockTaken
- Boolean
Wartość true, jeśli zostanie nabyta blokada; w przeciwnym razie, fałsz.
lockTaken przed wywołaniem tej metody należy zainicjować wartość false.
Wyjątki
Argument lockTaken musi zostać zainicjowany na wartość false przed wywołaniem klawisza Enter.
Śledzenie własności wątków jest włączone, a bieżący wątek nabył już tę blokadę.
Uwagi
SpinLock jest blokadą nieodpartą, co oznacza, że jeśli wątek trzyma blokadę, nie może ponownie wejść do blokady. Jeśli śledzenie własności wątku jest włączone (czy jest włączone za pośrednictwem IsThreadOwnerTrackingEnabled), wyjątek zostanie zgłoszony, gdy wątek spróbuje ponownie wprowadzić blokadę, która jest już przechowywana. Jeśli jednak śledzenie własności wątku jest wyłączone, próba wprowadzenia blokady już wstrzymana spowoduje zakleszczenie.
Jeśli wywołasz metodę Exit bez uprzedniego wywołania Enter stanu wewnętrznego obiektu SpinLock , może zostać uszkodzony.