ReaderWriterLockSlim.TryEnterReadLock 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í.
Pokusí se přejít na zámek v režimu čtení s volitelným časovým limitem.
Přetížení
TryEnterReadLock(Int32) |
Pokusí se přejít na zámek v režimu čtení s volitelným celočíselným časovým limitem. |
TryEnterReadLock(TimeSpan) |
Pokusí se přejít na zámek v režimu čtení s volitelným časovým limitem. |
TryEnterReadLock(Int32)
- Zdroj:
- ReaderWriterLockSlim.cs
- Zdroj:
- ReaderWriterLockSlim.cs
- Zdroj:
- ReaderWriterLockSlim.cs
Pokusí se přejít na zámek v režimu čtení s volitelným celočíselným časovým limitem.
public:
bool TryEnterReadLock(int millisecondsTimeout);
public bool TryEnterReadLock (int millisecondsTimeout);
member this.TryEnterReadLock : int -> bool
Public Function TryEnterReadLock (millisecondsTimeout As Integer) As Boolean
Parametry
- millisecondsTimeout
- Int32
Počet milisekund, které se mají čekat, nebo -1 (Infinite) k čekání na neomezenou dobu.
Návraty
true
pokud volající vlákno přešlo do režimu čtení, jinak . false
Výjimky
Vlastnost RecursionPolicy je NoRecursion a aktuální vlákno již vstoupilo do zámku.
-nebo-
Číslo rekurze by překročilo kapacitu čítače. Limit je tak velký, že by se s ním aplikace nikdy neměly setkat.
Hodnota je millisecondsTimeout
záporná, ale nerovná se Infinite (-1), což je jediná povolená záporná hodnota.
Objekt ReaderWriterLockSlim byl odstraněn.
Poznámky
Pokud millisecondsTimeout
je hodnota 0 (nula), tato metoda zkontroluje stav zámku a okamžitě vrátí, false
pokud je požadovaný stav nedostupný.
Více vláken může přejít do režimu čtení najednou.
Pokud jeden nebo více vláken čekají na vstup do režimu zápisu, vlákno, které volá metodu TryEnterReadLock blokuje, dokud tyto vlákna buď vypršel časový limit, nebo přejít do režimu zápisu a poté jej ukončit, nebo dokud vlastní interval časového limitu volajícího vlákna vyprší.
Poznámka
Pokud zámek umožňuje rekurze, vlákno, které vstoupilo do zámku v režimu čtení, může přejít do režimu čtení rekurzivně, i když jiná vlákna čekají na vstup do režimu zápisu.
Jedno vlákno může být v upgradovatelném režimu, zatímco ostatní vlákna jsou v režimu čtení. Pokud další vlákna čekají na přechod do upgradovatelného režimu a neexistují žádná vlákna čekající na přechod do režimu zápisu, vlákna, která volají metodu TryEnterReadLock , okamžitě přejdou do režimu čtení a neblokují.
Platí pro
TryEnterReadLock(TimeSpan)
- Zdroj:
- ReaderWriterLockSlim.cs
- Zdroj:
- ReaderWriterLockSlim.cs
- Zdroj:
- ReaderWriterLockSlim.cs
Pokusí se přejít na zámek v režimu čtení s volitelným časovým limitem.
public:
bool TryEnterReadLock(TimeSpan timeout);
public bool TryEnterReadLock (TimeSpan timeout);
member this.TryEnterReadLock : TimeSpan -> bool
Public Function TryEnterReadLock (timeout As TimeSpan) As Boolean
Parametry
- timeout
- TimeSpan
Interval čekání nebo -1 milisekundy čekání na dobu neurčitou.
Návraty
true
pokud volající vlákno přešlo do režimu čtení, jinak . false
Výjimky
Vlastnost RecursionPolicy je NoRecursion a aktuální vlákno již vstoupilo do zámku.
-nebo-
Číslo rekurze by překročilo kapacitu čítače. Limit je tak velký, že by se s ním aplikace nikdy neměly setkat.
Hodnota timeout
je záporná, ale nerovná se -1 milisekund, což je jediná povolená záporná hodnota.
-nebo-
Hodnota timeout
je větší než Int32.MaxValue milisekund.
Objekt ReaderWriterLockSlim byl odstraněn.
Poznámky
Pokud timeout
je hodnota 0 (nula), tato metoda zkontroluje stav zámku a okamžitě vrátí, false
pokud je požadovaný stav nedostupný.
Více vláken může vstoupit do zámku v režimu čtení najednou.
Pokud je jeden nebo více vláken zařazeny do fronty pro vstup do režimu zápisu, vlákno, které volá metodu TryEnterReadLock , blokuje, dokud tato vlákna buď vypršel časový limit, nebo přešla do režimu zápisu a poté jej ukončí, nebo dokud nevyprší časový limit volajícího vlákna vlastního intervalu časového limitu.
Poznámka
Pokud zámek umožňuje rekurze, vlákno, které vstoupilo do zámku v režimu čtení, může přejít do režimu čtení rekurzivně, i když jiná vlákna čekají na vstup do režimu zápisu.
Jedno vlákno může být v upgradovatelném režimu, zatímco ostatní vlákna jsou v režimu čtení. Pokud další vlákna čekají na přechod do upgradovatelného režimu a neexistují žádná vlákna čekající na přechod do režimu zápisu, vlákna, která volají metodu TryEnterReadLock , okamžitě přejdou do režimu čtení a neblokují.