ReaderWriterLockSlim.TryEnterReadLock Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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ą.