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, lockTaken
lze spolehlivě prozkoumat, 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
Před voláním klávesy lockTaken
Enter musí být argument inicializován na hodnotu false.
Sledování vlastnictví vlákna je povolené a aktuální vlákno už toto uzamčení získalo.
Poznámky
SpinLock je zámek bez opětovného zadání, což znamená, že pokud vlákno zámek drží, 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 ale sledování vlastnictví vlákna zakázané, pokus o zadání zámku, který už je uložený, způsobí zablokování.
Pokud zavoláte Exit bez prvního volání Enter interního SpinLock stavu, může dojít k poškození.