Freigeben über


ReaderWriterLockSlim.TryEnterReadLock Methode

Definition

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.

Gilt für: