Udostępnij za pośrednictwem


ReaderWriterLockSlim.TryEnterReadLock Metoda

Definicja

Próbuje wprowadzić blokadę w trybie odczytu z opcjonalnym limitem czasu.

Przeciążenia

TryEnterReadLock(Int32)

Próbuje wprowadzić blokadę w trybie odczytu z opcjonalnym limitem czasu całkowitego.

TryEnterReadLock(TimeSpan)

Próbuje wprowadzić blokadę w trybie odczytu z opcjonalnym limitem czasu.

TryEnterReadLock(Int32)

Źródło:
ReaderWriterLockSlim.cs
Źródło:
ReaderWriterLockSlim.cs
Źródło:
ReaderWriterLockSlim.cs

Próbuje wprowadzić blokadę w trybie odczytu z opcjonalnym limitem czasu całkowitego.

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

Liczba milisekund oczekiwania lub -1 (Infinite) na czas nieokreślony.

Zwraca

true jeśli wątek wywołujący został wprowadzony w trybie odczytu, falsew przeciwnym razie .

Wyjątki

Właściwość RecursionPolicy jest NoRecursion i bieżący wątek został już wprowadzony blokada.

-lub-

Liczba rekursji przekroczy pojemność licznika. Limit jest tak duży, że aplikacje nigdy nie powinny go napotkać.

Wartość jest millisecondsTimeout ujemna, ale nie jest równa Infinite (-1), która jest jedyną dozwoloną wartością ujemną.

Obiekt ReaderWriterLockSlim został usunięty.

Uwagi

Jeśli millisecondsTimeout wartość to 0 (zero), ta metoda sprawdza stan blokady i zwraca false natychmiast, jeśli żądany stan jest niedostępny.

Wiele wątków może jednocześnie wprowadzać tryb odczytu.

Jeśli co najmniej jeden wątek oczekuje na wejście w tryb zapisu, wątek, który wywołuje TryEnterReadLock bloki metody, dopóki te wątki nie upłynął limit czasu lub wszedł do trybu zapisu, a następnie wyjedzie z niego lub do czasu wygaśnięcia własnego interwału limitu czasu wątku wywołującego.

Uwaga

Jeśli blokada zezwala na rekursję, wątek wprowadzony w trybie odczytu może przechodzić w tryb odczytu cyklicznie, nawet jeśli inne wątki czekają na tryb zapisu.

Jeden wątek może być w trybie uaktualniania, podczas gdy inne wątki są w trybie odczytu. Jeśli dodatkowe wątki czekają na wprowadzenie trybu uaktualniania i nie ma wątków oczekujących na wejście w tryb zapisu, wątki wywołujące TryEnterReadLock metodę wchodzą w tryb odczytu natychmiast i nie blokują.

Dotyczy

TryEnterReadLock(TimeSpan)

Źródło:
ReaderWriterLockSlim.cs
Źródło:
ReaderWriterLockSlim.cs
Źródło:
ReaderWriterLockSlim.cs

Próbuje wprowadzić blokadę w trybie odczytu z opcjonalnym limitem czasu.

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

Interwał oczekiwania lub -1 milisekundy na czas nieokreślony.

Zwraca

true jeśli wątek wywołujący został wprowadzony w trybie odczytu, falsew przeciwnym razie .

Wyjątki

Właściwość RecursionPolicy jest NoRecursion i bieżący wątek został już wprowadzony blokada.

-lub-

Liczba rekursji przekroczy pojemność licznika. Limit jest tak duży, że aplikacje nigdy nie powinny go napotkać.

Wartość timeout jest ujemna, ale nie jest równa -1 milisekundom, która jest jedyną dozwoloną wartością ujemną.

-lub-

Wartość jest timeout większa niż Int32.MaxValue milisekund.

Obiekt ReaderWriterLockSlim został usunięty.

Uwagi

Jeśli timeout wartość to 0 (zero), ta metoda sprawdza stan blokady i zwraca false natychmiast, jeśli żądany stan jest niedostępny.

Wiele wątków może jednocześnie wprowadzać blokadę w trybie odczytu.

Jeśli co najmniej jeden wątek jest w kolejce do trybu zapisu, wątek, który wywołuje TryEnterReadLock bloki metody, dopóki te wątki nie upłynął limit czasu lub wszedł do trybu zapisu, a następnie zakończy się z niego lub do czasu wygaśnięcia własnego interwału limitu czasu wątku wywołującego.

Uwaga

Jeśli blokada zezwala na rekursję, wątek wprowadzony w trybie odczytu może przechodzić w tryb odczytu cyklicznie, nawet jeśli inne wątki czekają na tryb zapisu.

Jeden wątek może być w trybie uaktualniania, podczas gdy inne wątki są w trybie odczytu. Jeśli dodatkowe wątki czekają na wprowadzenie trybu uaktualniania i nie ma wątków oczekujących na wejście w tryb zapisu, wątki wywołujące TryEnterReadLock metodę wchodzą w tryb odczytu natychmiast i nie blokują.

Dotyczy