ReaderWriterLockSlim.TryEnterReadLock Metoda

Definice

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

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.

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

Platí pro