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 mit einem optionalen Timeout einzugeben.
Überlädt
| Name | Beschreibung |
|---|---|
| TryEnterReadLock(Int32) |
Versucht, die Sperre im Lesemodus mit einem optionalen ganzzahligen Timeout einzugeben. |
| TryEnterReadLock(TimeSpan) |
Versucht, die Sperre im Lesemodus mit einem optionalen Timeout einzugeben. |
TryEnterReadLock(Int32)
Versucht, die Sperre im Lesemodus mit einem optionalen ganzzahligen Timeout einzugeben.
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 Anzahl der zu wartenden Millisekunden oder -1 (Infinite) auf unbestimmte Zeit.
Gibt zurück
true wenn der aufrufende Thread den Lesemodus eingegeben hat, andernfalls false.
Ausnahmen
Die RecursionPolicy Eigenschaft ist NoRecursion und der aktuelle Thread hat bereits die Sperre eingegeben.
-oder-
Die Rekursionszahl würde die Kapazität des Zählers überschreiten. Der Grenzwert ist so groß, dass Anwendungen niemals darauf stoßen sollten.
Der Wert von millisecondsTimeout ist negativ, ist aber nicht gleich Infinite (-1), bei dem es sich um den einzigen negativen Wert handelt, der zulässig ist.
Das ReaderWriterLockSlim Objekt wurde verworfen.
Hinweise
Wenn millisecondsTimeout 0 (null) ist, überprüft diese Methode den Sperrzustand und gibt false sofort zurück, wenn der gewünschte Zustand nicht verfügbar ist.
Mehrere Threads können gleichzeitig in den Lesemodus wechseln.
Wenn mindestens ein Threads darauf wartet, in den Schreibmodus zu wechseln, wird ein Thread, der die TryEnterReadLock Methodenblöcke aufruft, bis diese Threads entweder timeout oder in den Schreibmodus verschoben und dann beendet wurden, oder bis das eigene Timeoutintervall des aufrufenden Threads abläuft.
Note
Wenn eine Sperre Rekursion zulässt, kann ein Thread, der die Sperre im Lesemodus eingegeben hat, rekursiv in den Lesemodus wechseln, auch wenn andere Threads darauf warten, in den Schreibmodus zu wechseln.
Ein Thread kann sich im Upgrademodus befinden, während sich andere Threads im Lesemodus befinden. Wenn zusätzliche Threads darauf warten, in den upgradefähigen Modus zu wechseln, und es gibt keine Threads, die auf den Schreibmodus warten, Threads, die die Methode sofort in den TryEnterReadLock Lesemodus aufrufen und nicht blockieren.
Gilt für:
TryEnterReadLock(TimeSpan)
Versucht, die Sperre im Lesemodus mit einem optionalen Timeout einzugeben.
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 zu wartende Intervall oder -1 Millisekunden, um auf unbestimmte Zeit zu warten.
Gibt zurück
true wenn der aufrufende Thread den Lesemodus eingegeben hat, andernfalls false.
Ausnahmen
Die RecursionPolicy Eigenschaft ist NoRecursion und der aktuelle Thread hat bereits die Sperre eingegeben.
-oder-
Die Rekursionszahl würde die Kapazität des Zählers überschreiten. Der Grenzwert ist so groß, dass Anwendungen niemals darauf stoßen sollten.
Der Wert von timeout ist negativ, ist aber nicht gleich -1 Millisekunden, was der einzige negative Wert ist, der zulässig ist.
-oder-
Der Wert von timeout " Int32.MaxValue Millisekunden" ist größer.
Das ReaderWriterLockSlim Objekt wurde verworfen.
Hinweise
Wenn timeout 0 (null) ist, überprüft diese Methode den Sperrzustand und gibt false sofort zurück, wenn der gewünschte Zustand nicht verfügbar ist.
Mehrere Threads können gleichzeitig in den Lesemodus wechseln.
Wenn mindestens ein Threads in die Warteschlange eingereiht wird, um in den Schreibmodus zu wechseln, wird ein Thread, der die TryEnterReadLock Methodenblöcke aufruft, bis diese Threads entweder einen Timeout-Modus überschritten oder in den Schreibmodus eingegeben und dann beendet wurden, oder bis das eigene Timeoutintervall des aufrufenden Threads abläuft.
Note
Wenn eine Sperre Rekursion zulässt, kann ein Thread, der die Sperre im Lesemodus eingegeben hat, rekursiv in den Lesemodus wechseln, auch wenn andere Threads darauf warten, in den Schreibmodus zu wechseln.
Ein Thread kann sich im Upgrademodus befinden, während sich andere Threads im Lesemodus befinden. Wenn zusätzliche Threads darauf warten, in den upgradefähigen Modus zu wechseln, und es gibt keine Threads, die auf den Schreibmodus warten, Threads, die die Methode sofort in den TryEnterReadLock Lesemodus aufrufen und nicht blockieren.