SpinLock.Enter(Boolean) Metoda

Definicja

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.

Dotyczy

Zobacz też