ReaderWriterLockSlim.TryEnterReadLock Methode

Definition

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.

Gilt für: