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