ReaderWriterLockSlim.TryEnterReadLock Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Versucht, die Sperre im Lesemodus zu erhalten. Optional wird ein Timeout berücksichtigt.
Überlädt
TryEnterReadLock(Int32) |
Versucht, die Sperre im Lesemodus zu erhalten. Optional wird ein ganzzahliger Timeout berücksichtigt. |
TryEnterReadLock(TimeSpan) |
Versucht, die Sperre im Lesemodus zu erhalten. Optional wird ein Timeout berücksichtigt. |
TryEnterReadLock(Int32)
- Quelle:
- ReaderWriterLockSlim.cs
- Quelle:
- ReaderWriterLockSlim.cs
- Quelle:
- ReaderWriterLockSlim.cs
Versucht, die Sperre im Lesemodus zu erhalten. Optional wird ein ganzzahliger Timeout berücksichtigt.
public:
bool TryEnterReadLock(int millisecondsTimeout);
public bool TryEnterReadLock (int millisecondsTimeout);
member this.TryEnterReadLock : int -> bool
Public Function TryEnterReadLock (millisecondsTimeout As Integer) As Boolean
Parameter
- millisecondsTimeout
- Int32
Die Zeit in Millisekunden, die gewartet wird, oder -1 (Infinite), um unbegrenzt zu warten.
Gibt zurück
true
, wenn der aufrufende Thread den Lesemodus erhalten hat, andernfalls false
.
Ausnahmen
Die RecursionPolicy-Eigenschaft ist NoRecursion, und der aktuelle Thread hat die Sperre bereits erhalten.
- oder -
Die Anzahl von Rekursionen würde die Kapazität des Zählers überschreiten. Die Kapazität ist so groß, dass Anwendungen diese Grenze niemals erreichen dürften.
Der Wert von millisecondsTimeout
ist negativ, aber ungleich Infinite (-1), der den einzigen zulässigen negativen Wert darstellt.
Das ReaderWriterLockSlim -Objekt wurde verworfen.
Hinweise
Wenn millisecondsTimeout
0 (null) ist, überprüft diese Methode den Sperrzustand und gibt sofort zurück false
, wenn der gewünschte Zustand nicht verfügbar ist.
Mehrere Threads können gleichzeitig in den Lesemodus wechseln.
Wenn ein oder mehrere Threads darauf warten, in den Schreibmodus zu wechseln, blockiert ein Thread, der die TryEnterReadLock -Methode aufruft, so lange, bis für diese Threads ein Timeout aufgetreten ist oder in den Schreibmodus gewechselt und dann beendet wird, oder bis das eigene Timeoutintervall des aufrufenden Threads abläuft.
Hinweis
Wenn eine Sperre die Rekursion zulässt, kann ein Thread, der die Sperre im Lesemodus betreten hat, rekursiv in den Lesemodus wechseln, auch wenn andere Threads darauf warten, in den Schreibmodus zu wechseln.
Ein Thread kann sich im upgradefähigen Modus befinden, während sich andere Threads im Lesemodus befinden. Wenn weitere Threads darauf warten, in den upgradefähigen Modus zu wechseln, und keine Threads darauf warten, in den Schreibmodus zu wechseln, wechseln Threads, die die Methode aufrufen, sofort in den TryEnterReadLock Lesemodus und blockieren sie nicht.
Gilt für:
TryEnterReadLock(TimeSpan)
- Quelle:
- ReaderWriterLockSlim.cs
- Quelle:
- ReaderWriterLockSlim.cs
- Quelle:
- ReaderWriterLockSlim.cs
Versucht, die Sperre im Lesemodus zu erhalten. Optional wird ein Timeout berücksichtigt.
public:
bool TryEnterReadLock(TimeSpan timeout);
public bool TryEnterReadLock (TimeSpan timeout);
member this.TryEnterReadLock : TimeSpan -> bool
Public Function TryEnterReadLock (timeout As TimeSpan) As Boolean
Parameter
- timeout
- TimeSpan
Das Zeitintervall bis zum Timeout, oder -1 Millisekunden, um unbegrenzt zu warten.
Gibt zurück
true
, wenn der aufrufende Thread den Lesemodus erhalten hat, andernfalls false
.
Ausnahmen
Die RecursionPolicy-Eigenschaft ist NoRecursion, und der aktuelle Thread hat die Sperre bereits erhalten.
- oder -
Die Anzahl von Rekursionen würde die Kapazität des Zählers überschreiten. Die Kapazität ist so groß, dass Anwendungen diese Grenze niemals erreichen dürften.
Der Wert von timeout
ist negativ, aber ungleich -1 Millisekunden. (Dies ist der einzige zulässige negative Wert.)
- oder -
Der Wert von timeout
ist größer als Int32.MaxValue Millisekunden.
Das ReaderWriterLockSlim -Objekt wurde verworfen.
Hinweise
Wenn timeout
0 (null) ist, überprüft diese Methode den Sperrzustand und gibt sofort zurück false
, wenn der gewünschte Zustand nicht verfügbar ist.
Mehrere Threads können gleichzeitig im Lesemodus in die Sperre wechseln.
Wenn ein oder mehrere Threads in die Warteschlange eingereiht werden, um in den Schreibmodus zu gelangen, blockiert ein Thread, der die TryEnterReadLock -Methode aufruft, bis für diese Threads ein Timeout aufgetreten ist oder in den Schreibmodus gewechselt ist, oder bis das eigene Timeoutintervall des aufrufenden Threads abläuft.
Hinweis
Wenn eine Sperre die Rekursion zulässt, kann ein Thread, der die Sperre im Lesemodus betreten hat, rekursiv in den Lesemodus wechseln, auch wenn andere Threads darauf warten, in den Schreibmodus zu wechseln.
Ein Thread kann sich im upgradefähigen Modus befinden, während sich andere Threads im Lesemodus befinden. Wenn weitere Threads darauf warten, in den upgradefähigen Modus zu wechseln, und keine Threads darauf warten, in den Schreibmodus zu wechseln, wechseln Threads, die die Methode aufrufen, sofort in den TryEnterReadLock Lesemodus und blockieren sie nicht.