ReaderWriterLockSlim.TryEnterReadLock Metoda

Definicja

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

Przeciążenia

Nazwa Opis
TryEnterReadLock(Int32)

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

TryEnterReadLock(TimeSpan)

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

TryEnterReadLock(Int32)

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

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) oczekiwania na czas nieokreślony.

Zwraca

true jeśli wątek wywołujący wprowadził tryb odczytu, w przeciwnym razie false.

Wyjątki

Właściwość RecursionPolicy to NoRecursion i bieżący wątek już wprowadził blokadę.

— lub —

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

Wartość jest ujemna millisecondsTimeout , 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 w tym samym czasie wejść w 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 wyjść z niego lub do czasu wygaśnięcia własnego interwału limitu czasu wątku wywołującego.

Note

Jeśli blokada zezwala na rekursję, wątek, który wprowadził blokadę w trybie odczytu, może przechodzić w tryb odczytu rekursywnie, nawet jeśli inne wątki czekają na wejście w 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)

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 milisekund oczekiwania na czas nieokreślony.

Zwraca

true jeśli wątek wywołujący wprowadził tryb odczytu, w przeciwnym razie false.

Wyjątki

Właściwość RecursionPolicy to NoRecursion i bieżący wątek już wprowadził blokadę.

— 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 milisekund, która jest jedyną dozwoloną wartością ujemną.

— lub —

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

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 wyjść z niego lub do czasu wygaśnięcia własnego interwału limitu czasu wywołania wątku.

Note

Jeśli blokada zezwala na rekursję, wątek, który wprowadził blokadę w trybie odczytu, może przechodzić w tryb odczytu rekursywnie, nawet jeśli inne wątki czekają na wejście w 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