ReaderWriterLockSlim.TryEnterUpgradeableReadLock Methode

Definition

Versucht, die Sperre im erweiterbaren Modus zu erhalten. Optional wird ein Timeout berücksichtigt.

Überlädt

TryEnterUpgradeableReadLock(Int32)

Versucht, die Sperre im erweiterbaren Modus zu erhalten. Optional wird ein Timeout berücksichtigt.

TryEnterUpgradeableReadLock(TimeSpan)

Versucht, die Sperre im erweiterbaren Modus zu erhalten. Optional wird ein Timeout berücksichtigt.

TryEnterUpgradeableReadLock(Int32)

Quelle:
ReaderWriterLockSlim.cs
Quelle:
ReaderWriterLockSlim.cs
Quelle:
ReaderWriterLockSlim.cs

Versucht, die Sperre im erweiterbaren Modus zu erhalten. Optional wird ein Timeout berücksichtigt.

public:
 bool TryEnterUpgradeableReadLock(int millisecondsTimeout);
public bool TryEnterUpgradeableReadLock (int millisecondsTimeout);
member this.TryEnterUpgradeableReadLock : int -> bool
Public Function TryEnterUpgradeableReadLock (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 erweiterbaren Modus erhalten hat, andernfalls false.

Ausnahmen

Die RecursionPolicy-Eigenschaft ist NoRecursion, und der aktuelle Thread hat die Sperre bereits erhalten.

- oder -

Der aktuelle Thread befindet sich bereits im Lesemodus, sodass durch eine Zuweisung des erweiterbaren Modus die Möglichkeit eines Deadlocks entstehen würde.

- 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.

Verwenden Sie den upgradebaren Modus, wenn ein Thread normalerweise auf die Ressource zugreift, die im Lesemodus geschützt ist, aber möglicherweise in den ReaderWriterLockSlim Schreibmodus wechseln muss, wenn bestimmte Bedingungen erfüllt sind. Ein Thread im upgradebaren Modus kann in den Schreibmodus oder in den Lesemodus herunterstufen.

Nur ein Thread kann jederzeit in eine Sperre im upgradefähigen Modus wechseln. Wenn sich ein Thread im upgradefähigen Modus befindet und keine Threads darauf warten, in den Schreibmodus zu wechseln, kann eine beliebige Anzahl anderer Threads in den Lesemodus wechseln, auch wenn Threads darauf warten, in den upgradebaren Modus zu wechseln.

Wenn mindestens ein Threads darauf wartet, in den Schreibmodus zu wechseln, blockiert ein Thread, der die TryEnterUpgradeableReadLock -Methode aufruft, bis diese Threads entweder timeout oder in den Schreibmodus versetzt und dann beendet werden, 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 upgradebaren Modus betreten hat, rekursiv in den upgradebaren Modus wechseln, auch wenn andere Threads darauf warten, in den Schreibmodus zu wechseln.

Gilt für:

TryEnterUpgradeableReadLock(TimeSpan)

Quelle:
ReaderWriterLockSlim.cs
Quelle:
ReaderWriterLockSlim.cs
Quelle:
ReaderWriterLockSlim.cs

Versucht, die Sperre im erweiterbaren Modus zu erhalten. Optional wird ein Timeout berücksichtigt.

public:
 bool TryEnterUpgradeableReadLock(TimeSpan timeout);
public bool TryEnterUpgradeableReadLock (TimeSpan timeout);
member this.TryEnterUpgradeableReadLock : TimeSpan -> bool
Public Function TryEnterUpgradeableReadLock (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 erweiterbaren Modus erhalten hat, andernfalls false.

Ausnahmen

Die RecursionPolicy-Eigenschaft ist NoRecursion, und der aktuelle Thread hat die Sperre bereits erhalten.

- oder -

Der aktuelle Thread befindet sich bereits im Lesemodus, sodass durch eine Zuweisung des erweiterbaren Modus die Möglichkeit eines Deadlocks entstehen würde.

- 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.

Verwenden Sie den upgradebaren Modus, wenn ein Thread normalerweise im Lesemodus auf die durch die geschützte Ressource zugreift, aber möglicherweise in den ReaderWriterLockSlim Schreibmodus wechseln muss, wenn bestimmte Bedingungen erfüllt sind. Ein Thread im upgradebaren Modus kann in den Schreibmodus oder in den Lesemodus herunterstufen.

Nur ein Thread kann jederzeit in eine Sperre im upgradefähigen Modus wechseln. Wenn sich ein Thread im upgradefähigen Modus befindet und keine Threads darauf warten, in den Schreibmodus zu wechseln, kann eine beliebige Anzahl anderer Threads in den Lesemodus wechseln, auch wenn Threads darauf warten, in den upgradebaren Modus zu wechseln.

Wenn mindestens ein Threads darauf wartet, in den Schreibmodus zu wechseln, blockiert ein Thread, der die TryEnterUpgradeableReadLock -Methode aufruft, bis diese Threads entweder timeout oder in den Schreibmodus versetzt und dann beendet werden, 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 upgradebaren Modus betreten hat, rekursiv in den upgradebaren Modus wechseln, auch wenn andere Threads darauf warten, in den Schreibmodus zu wechseln.

Gilt für: