SpinLock.Enter(Boolean) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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í.