ReaderWriterLockSlim.TryEnterReadLock Methode

Definitie

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

Overloads

Name Description
TryEnterReadLock(Int32)

Probeert de vergrendeling in de leesmodus in te voeren, met een optionele time-out voor gehele getallen.

TryEnterReadLock(TimeSpan)

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

TryEnterReadLock(Int32)

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

Probeert de vergrendeling in de leesmodus in te voeren, met een optionele time-out voor gehele getallen.

public:
 bool TryEnterReadLock(int millisecondsTimeout);
public bool TryEnterReadLock(int millisecondsTimeout);
member this.TryEnterReadLock : int -> bool
Public Function TryEnterReadLock (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 leesmodus heeft ingevoerd, anders. false

Uitzonderingen

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

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

Meerdere threads kunnen tegelijkertijd de leesmodus openen.

Als een of meer threads wachten om de schrijfmodus in te voeren, wordt een thread die de TryEnterReadLock 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 in de leesmodus heeft ingevoerd recursief in de leesmodus komen, zelfs als andere threads wachten om de schrijfmodus te openen.

Een thread kan zich in de upgradebare modus bevinden, terwijl andere threads zich in de leesmodus bevinden. Als er extra threads wachten om de upgradebare modus in te voeren en er geen threads zijn die wachten op het invoeren van de schrijfmodus, worden threads die de TryEnterReadLock methode aanroepen, onmiddellijk in de leesmodus geactiveerd en worden ze niet geblokkeerd.

Van toepassing op

TryEnterReadLock(TimeSpan)

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

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

public:
 bool TryEnterReadLock(TimeSpan timeout);
public bool TryEnterReadLock(TimeSpan timeout);
member this.TryEnterReadLock : TimeSpan -> bool
Public Function TryEnterReadLock (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 leesmodus heeft ingevoerd, anders. false

Uitzonderingen

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

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

Meerdere threads kunnen tegelijkertijd de vergrendeling in de leesmodus invoeren.

Als een of meer threads in de wachtrij worden geplaatst om de schrijfmodus in te voeren, wordt een thread die de TryEnterReadLock methode aanroept, geblokkeerd totdat er een time-out optreedt voor deze threads of in de schrijfmodus zijn gegaan en vervolgens zijn afgesloten, of totdat het tijdsinterval van de aanroepende thread verloopt.

Note

Als een vergrendeling recursie toestaat, kan een thread die de vergrendeling in de leesmodus heeft ingevoerd recursief in de leesmodus komen, zelfs als andere threads wachten om de schrijfmodus te openen.

Een thread kan zich in de upgradebare modus bevinden, terwijl andere threads zich in de leesmodus bevinden. Als er extra threads wachten om de upgradebare modus in te voeren en er geen threads zijn die wachten op het invoeren van de schrijfmodus, worden threads die de TryEnterReadLock methode aanroepen, onmiddellijk in de leesmodus geactiveerd en worden ze niet geblokkeerd.

Van toepassing op