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 do zámku v režimu čtení s volitelným časovým limitem.
Přetížení
| Name | Description |
|---|---|
| TryEnterReadLock(Int32) |
Pokusí se vstoupit do zámku v režimu čtení s volitelným časovým limitem celého čísla. |
| TryEnterReadLock(TimeSpan) |
Pokusí se přejít do zámku v režimu čtení s volitelným časovým limitem. |
TryEnterReadLock(Int32)
- Zdroj:
- ReaderWriterLockSlim.cs
- Zdroj:
- ReaderWriterLockSlim.cs
- Zdroj:
- ReaderWriterLockSlim.cs
- Zdroj:
- ReaderWriterLockSlim.cs
- Zdroj:
- ReaderWriterLockSlim.cs
Pokusí se vstoupit do zámku v režimu čtení s volitelným časovým limitem celého čísla.
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í počkat, nebo -1 (Infinite) na neomezenou dobu.
Návraty
true pokud volající vlákno vstoupilo do režimu čtení, jinak , false.
Výjimky
Vlastnost RecursionPolicy je NoRecursion a aktuální vlákno již bylo zadáno zámek.
nebo
Číslo rekurze by překročilo kapacitu čítače. Limit je tak velký, že by se na ni aplikace nikdy neměly setkat.
Hodnota je záporná millisecondsTimeout , ale nerovná se Infinite (-1), což je jediná záporná hodnota povolená.
Objekt ReaderWriterLockSlim byl odstraněn.
Poznámky
Pokud millisecondsTimeout je 0 (nula), tato metoda zkontroluje stav zámku a vrátí false okamžitě, pokud požadovaný stav není k dispozici.
Více vláken může současně vstoupit do režimu čtení.
Pokud jedno nebo více vláken čeká na vstup do režimu zápisu, vlákno, které volá TryEnterReadLock metodu bloky, dokud tyto vlákna buď vypršel časový limit, nebo vstoupil do režimu zápisu a poté se z něj ukončí, nebo dokud nevyprší časový limit volajícího vlákna.
Note
Pokud zámek umožňuje rekurze, vlákno, které zadalo zámek v režimu čtení, může rekurzivně vstoupit do režimu čtení, i když ostatní vlákna čekají na vstup do režimu zápisu.
Jedno vlákno může být v režimu upgradu, zatímco ostatní vlákna jsou v režimu čtení. Pokud další vlákna čekají na přechod do režimu upgradu a neexistují žádná vlákna čekající na vstup do režimu zápisu, vlákna, která volají metodu TryEnterReadLock režim čtení okamžitě a neblokují.
Platí pro
TryEnterReadLock(TimeSpan)
- Zdroj:
- ReaderWriterLockSlim.cs
- Zdroj:
- ReaderWriterLockSlim.cs
- Zdroj:
- ReaderWriterLockSlim.cs
- Zdroj:
- ReaderWriterLockSlim.cs
- Zdroj:
- ReaderWriterLockSlim.cs
Pokusí se přejít do zámku 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, aby se čekalo neomezeně dlouho.
Návraty
true pokud volající vlákno vstoupilo do režimu čtení, jinak , false.
Výjimky
Vlastnost RecursionPolicy je NoRecursion a aktuální vlákno již bylo zadáno zámek.
nebo
Číslo rekurze by překročilo kapacitu čítače. Limit je tak velký, že by se na ni aplikace nikdy neměly setkat.
Hodnota je záporná timeout , ale nerovná se -1 milisekund, což je jediná záporná hodnota povolená.
nebo
Hodnota timeout je větší než Int32.MaxValue milisekund.
Objekt ReaderWriterLockSlim byl odstraněn.
Poznámky
Pokud timeout je 0 (nula), tato metoda zkontroluje stav zámku a vrátí false okamžitě, pokud požadovaný stav není k dispozici.
V režimu čtení může současně vstoupit do zámku více vláken.
Pokud se jedno nebo více vláken zařadí do fronty pro vstup do režimu zápisu, vlákno, které volá TryEnterReadLock bloky metody, dokud tyto vlákna nevyprší časový limit nebo nezadáte režim zápisu a poté se z něj ukončí nebo dokud nevyprší časový limit volajícího vlákna.
Note
Pokud zámek umožňuje rekurze, vlákno, které zadalo zámek v režimu čtení, může rekurzivně vstoupit do režimu čtení, i když ostatní vlákna čekají na vstup do režimu zápisu.
Jedno vlákno může být v režimu upgradu, zatímco ostatní vlákna jsou v režimu čtení. Pokud další vlákna čekají na přechod do režimu upgradu a neexistují žádná vlákna čekající na vstup do režimu zápisu, vlákna, která volají metodu TryEnterReadLock režim čtení okamžitě a neblokují.