SpinLock.Enter(Boolean) Metoda

Definice

Získá zámek spolehlivým způsobem, takže i když dojde k výjimce v rámci volání metody, lze spolehlivě prozkoumat a zjistit, lockTaken zda byl zámek získán.

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

True Pokud je zámek získán; jinak nepravda. lockTaken před voláním této metody musí být inicializována na hodnotu false.

Výjimky

Argument lockTaken musí být inicializován na hodnotu false před voláním klávesy Enter.

Sledování vlastnictví vlákna je povolené a aktuální vlákno už toto uzamčení získalo.

Poznámky

SpinLock je neopakovaný zámek, což znamená, že pokud vlákno zámek uchovává, nesmí zámek znovu zadávat. Pokud je sledování vlastnictví vlákna povolené (jestli je povolené prostřednictvím IsThreadOwnerTrackingEnabled), vyvolá se výjimka, když se vlákno pokusí znovu zadat zámek, který už obsahuje. Pokud je však sledování vlastnictví vlákna zakázané, při pokusu o zadání zámku, který už je uložený, dojde k zablokování.

Pokud zavoláte Exit , aniž byste nejdřív volali Enter vnitřní stav, SpinLock může dojít k poškození.

Platí pro

Viz také