Sdílet prostřednictvím


ReaderWriterLockSlim.TryEnterReadLock Metoda

Definice

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

truepokud 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.

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

truepokud 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.

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í.

Platí pro