ReaderWriterLockSlim.TryEnterUpgradeableReadLock Methode

Definitie

Probeert de vergrendeling in de upgradebare modus in te voeren, met een optionele time-out.

Overloads

Name Description
TryEnterUpgradeableReadLock(Int32)

Probeert de vergrendeling in de upgradebare modus in te voeren, met een optionele time-out.

TryEnterUpgradeableReadLock(TimeSpan)

Probeert de vergrendeling in de upgradebare modus in te voeren, met een optionele time-out.

TryEnterUpgradeableReadLock(Int32)

Bron:
ReaderWriterLockSlim.cs
Bron:
ReaderWriterLockSlim.cs
Bron:
ReaderWriterLockSlim.cs
Bron:
ReaderWriterLockSlim.cs
Bron:
ReaderWriterLockSlim.cs

Probeert de vergrendeling in de upgradebare modus in te voeren, met een optionele time-out.

public:
 bool TryEnterUpgradeableReadLock(int millisecondsTimeout);
public bool TryEnterUpgradeableReadLock(int millisecondsTimeout);
member this.TryEnterUpgradeableReadLock : int -> bool
Public Function TryEnterUpgradeableReadLock (millisecondsTimeout As Integer) As Boolean

Parameters

millisecondsTimeout
Int32

Het aantal milliseconden dat moet worden gewacht, of -1 (Infinite) om voor onbepaalde tijd te wachten.

Retouren

trueals de aanroepende thread de upgradebare modus heeft ingevoerd, anders. false

Uitzonderingen

De RecursionPolicy eigenschap is NoRecursion en de huidige thread heeft de vergrendeling al ingevoerd.

– of –

De huidige thread heeft in eerste instantie de vergrendeling in de leesmodus ingevoerd en daarom wordt geprobeerd om de upgradebare modus in te voeren de mogelijkheid van een impasse.

– of –

Het recursienummer overschrijdt de capaciteit van de teller. De limiet is zo groot dat toepassingen deze nooit mogen tegenkomen.

De waarde is millisecondsTimeout negatief, maar is niet gelijk aan Infinite (-1), wat de enige negatieve waarde is die is toegestaan.

Het ReaderWriterLockSlim object is verwijderd.

Opmerkingen

Als millisecondsTimeout 0 (nul) is, controleert deze methode de vergrendelingsstatus false en wordt onmiddellijk geretourneerd als de gewenste status niet beschikbaar is.

Gebruik de upgradebare modus wanneer een thread meestal toegang heeft tot de resource die wordt beveiligd door de ReaderWriterLockSlim leesmodus, maar mogelijk moet de schrijfmodus worden geactiveerd als aan bepaalde voorwaarden wordt voldaan. Een thread in de upgradebare modus kan upgraden naar de schrijfmodus of downgraden naar de leesmodus.

Slechts één thread kan op elk gewenst moment een vergrendeling in de upgradebare modus invoeren. Als een thread zich in de upgradebare modus bevindt en er geen threads zijn die wachten op het invoeren van de schrijfmodus, kan een willekeurig aantal andere threads de leesmodus inschakelen, zelfs als er threads zijn die wachten op de upgradebare modus.

Als een of meer threads wachten om de schrijfmodus in te voeren, wordt een thread die de TryEnterUpgradeableReadLock methode aanroept, geblokkeerd totdat er een time-out is opgetreden of in de schrijfmodus is gegaan en vervolgens is afgesloten, of totdat het time-outinterval van de aanroepende thread verloopt.

Note

Als een vergrendeling recursie toestaat, kan een thread die de vergrendeling heeft ingevoerd in de upgradebare modus recursief worden geactiveerd, zelfs als andere threads wachten om de schrijfmodus in te voeren.

Van toepassing op

TryEnterUpgradeableReadLock(TimeSpan)

Bron:
ReaderWriterLockSlim.cs
Bron:
ReaderWriterLockSlim.cs
Bron:
ReaderWriterLockSlim.cs
Bron:
ReaderWriterLockSlim.cs
Bron:
ReaderWriterLockSlim.cs

Probeert de vergrendeling in de upgradebare modus in te voeren, met een optionele time-out.

public:
 bool TryEnterUpgradeableReadLock(TimeSpan timeout);
public bool TryEnterUpgradeableReadLock(TimeSpan timeout);
member this.TryEnterUpgradeableReadLock : TimeSpan -> bool
Public Function TryEnterUpgradeableReadLock (timeout As TimeSpan) As Boolean

Parameters

timeout
TimeSpan

Het interval dat moet worden gewacht of -1 milliseconden om voor onbepaalde tijd te wachten.

Retouren

trueals de aanroepende thread de upgradebare modus heeft ingevoerd, anders. false

Uitzonderingen

De RecursionPolicy eigenschap is NoRecursion en de huidige thread heeft de vergrendeling al ingevoerd.

– of –

De huidige thread heeft in eerste instantie de vergrendeling in de leesmodus ingevoerd en daarom wordt geprobeerd om de upgradebare modus in te voeren de mogelijkheid van een impasse.

– of –

Het recursienummer overschrijdt de capaciteit van de teller. De limiet is zo groot dat toepassingen deze nooit mogen tegenkomen.

De waarde is timeout negatief, maar is niet gelijk aan -1 milliseconden, wat de enige negatieve waarde is die is toegestaan.

– of –

De waarde van timeout is groter dan Int32.MaxValue milliseconden.

Het ReaderWriterLockSlim object is verwijderd.

Opmerkingen

Als timeout 0 (nul) is, controleert deze methode de vergrendelingsstatus false en wordt onmiddellijk geretourneerd als de gewenste status niet beschikbaar is.

Gebruik de upgradebare modus wanneer een thread meestal toegang heeft tot de resource die wordt beveiligd door de ReaderWriterLockSlim leesmodus, maar mogelijk moet de schrijfmodus worden geactiveerd als aan bepaalde voorwaarden wordt voldaan. Een thread in de upgradebare modus kan upgraden naar de schrijfmodus of downgraden naar de leesmodus.

Slechts één thread kan op elk gewenst moment een vergrendeling in de upgradebare modus invoeren. Als een thread zich in de upgradebare modus bevindt en er geen threads zijn die wachten op het invoeren van de schrijfmodus, kan een willekeurig aantal andere threads de leesmodus inschakelen, zelfs als er threads zijn die wachten op de upgradebare modus.

Als een of meer threads wachten om de schrijfmodus in te voeren, wordt een thread die de TryEnterUpgradeableReadLock methode aanroept, geblokkeerd totdat er een time-out is opgetreden of in de schrijfmodus is gegaan en vervolgens is afgesloten, of totdat het time-outinterval van de aanroepende thread verloopt.

Note

Als een vergrendeling recursie toestaat, kan een thread die de vergrendeling heeft ingevoerd in de upgradebare modus recursief worden geactiveerd, zelfs als andere threads wachten om de schrijfmodus in te voeren.

Van toepassing op