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, dzięki czemu nawet w przypadku wystąpienia wyjątku w wywołaniu metody można niezawodnie zbadać, lockTaken
czy blokada została przejęta.
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
Prawda, jeśli blokada zostanie uzyskana; 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ątku jest włączone, a bieżący wątek już nabył tę blokadę.
Uwagi
SpinLock jest blokadą niewzględniową, co oznacza, że jeśli wątek zawiera blokadę, nie może ponownie wprowadzić 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 próbuje ponownie wprowadzić blokadę, która już zawiera. Jednak jeśli śledzenie własności wątku jest wyłączone, próba wprowadzenia blokady już wstrzymana spowoduje zakleszczenie.
Jeśli wywołasz wywołanie Exit bez uprzedniego wywołania Enter stanu wewnętrznego, SpinLock może zostać uszkodzone.