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
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
Zwraca
true
jeśli wątek wywołujący został wprowadzony w trybie odczytu, false
w 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, false
w 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ą.