Condividi tramite


ReaderWriterLockSlim.TryEnterUpgradeableReadLock Metodo

Definizione

Prova ad attivare il blocco in modalità aggiornabile con un timeout facoltativo.

Overload

TryEnterUpgradeableReadLock(Int32)

Prova ad attivare il blocco in modalità aggiornabile con un timeout facoltativo.

TryEnterUpgradeableReadLock(TimeSpan)

Prova ad attivare il blocco in modalità aggiornabile con un timeout facoltativo.

TryEnterUpgradeableReadLock(Int32)

Origine:
ReaderWriterLockSlim.cs
Origine:
ReaderWriterLockSlim.cs
Origine:
ReaderWriterLockSlim.cs

Prova ad attivare il blocco in modalità aggiornabile con un timeout facoltativo.

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

Parametri

millisecondsTimeout
Int32

Numero di millisecondi di attesa oppure -1 (Infinite) per un'attesa indefinita.

Restituisce

true se il thread chiamante ha acceduto alla modalità aggiornabile; in caso contrario, false.

Eccezioni

La proprietà RecursionPolicy è NoRecursion e il thread corrente ha già acceduto al blocco.

-oppure-

Il thread corrente ha inizialmente acceduto al blocco in modalità di lettura, pertanto il tentativo di accedere alla modalità aggiornabile creerebbe la possibilità di un deadlock.

-oppure-

Il numero di ricorsioni supererebbe la capacità del contatore. Il limite è talmente elevato che le applicazioni non dovrebbero mai raggiungerlo.

Il valore di millisecondsTimeout è negativo, ma non è uguale a Infinite (-1), ovvero l'unico valore negativo consentito.

L'oggetto ReaderWriterLockSlim è stato eliminato.

Commenti

Se millisecondsTimeout è 0 (zero), questo metodo controlla lo stato di blocco e restituisce false immediatamente se lo stato desiderato non è disponibile.

Usare la modalità aggiornabile quando un thread accede in genere alla risorsa protetta dalla ReaderWriterLockSlim modalità di lettura, ma potrebbe essere necessario immettere la modalità di scrittura se vengono soddisfatte determinate condizioni. Un thread in modalità aggiornabile può eseguire l'aggiornamento alla modalità di scrittura o eseguire il downgrade alla modalità di lettura.

Un solo thread può immettere un blocco in modalità aggiornabile in qualsiasi momento. Se un thread è in modalità aggiornabile e non ci sono thread in attesa di immettere la modalità di scrittura, qualsiasi numero di altri thread può immettere la modalità di lettura, anche se ci sono thread in attesa di immettere la modalità aggiornabile.

Se uno o più thread sono in attesa di immettere la modalità di scrittura, un thread che chiama i blocchi del TryEnterUpgradeableReadLock metodo fino a quando tali thread non hanno effettuato il timeout o immesso in modalità di scrittura e quindi sono usciti da esso o fino alla scadenza dell'intervallo di timeout del thread chiamante.

Nota

Se un blocco consente la ricorsione, un thread che ha immesso il blocco in modalità aggiornabile può immettere in modo ricorsivo la modalità aggiornabile, anche se altri thread sono in attesa di immettere la modalità di scrittura.

Si applica a

TryEnterUpgradeableReadLock(TimeSpan)

Origine:
ReaderWriterLockSlim.cs
Origine:
ReaderWriterLockSlim.cs
Origine:
ReaderWriterLockSlim.cs

Prova ad attivare il blocco in modalità aggiornabile con un timeout facoltativo.

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

Parametri

timeout
TimeSpan

Intervallo di attesa oppure -1 millisecondi per un'attesa indefinita.

Restituisce

true se il thread chiamante ha acceduto alla modalità aggiornabile; in caso contrario, false.

Eccezioni

La proprietà RecursionPolicy è NoRecursion e il thread corrente ha già acceduto al blocco.

-oppure-

Il thread corrente ha inizialmente acceduto al blocco in modalità di lettura, pertanto il tentativo di accedere alla modalità aggiornabile creerebbe la possibilità di un deadlock.

-oppure-

Il numero di ricorsioni supererebbe la capacità del contatore. Il limite è talmente elevato che le applicazioni non dovrebbero mai raggiungerlo.

Il valore di timeout è negativo, ma non è uguale a -1 millisecondi, ovvero l'unico valore negativo consentito.

-oppure-

Il valore di è maggiore di timeoutInt32.MaxValue millisecondi.

L'oggetto ReaderWriterLockSlim è stato eliminato.

Commenti

Se timeout è 0 (zero), questo metodo controlla lo stato di blocco e restituisce false immediatamente se lo stato desiderato non è disponibile.

Usare la modalità aggiornabile quando un thread accede in genere alla risorsa protetta dalla ReaderWriterLockSlim modalità di lettura, ma potrebbe essere necessario immettere la modalità di scrittura se vengono soddisfatte determinate condizioni. Un thread in modalità aggiornabile può eseguire l'aggiornamento alla modalità di scrittura o eseguire il downgrade alla modalità di lettura.

Un solo thread può immettere un blocco in modalità aggiornabile in qualsiasi momento. Se un thread è in modalità aggiornabile e non ci sono thread in attesa di immettere la modalità di scrittura, qualsiasi numero di altri thread può immettere la modalità di lettura, anche se ci sono thread in attesa di immettere la modalità aggiornabile.

Se uno o più thread sono in attesa di immettere la modalità di scrittura, un thread che chiama i blocchi del TryEnterUpgradeableReadLock metodo fino a quando tali thread non hanno effettuato il timeout o immesso in modalità di scrittura e quindi sono usciti da esso o fino alla scadenza dell'intervallo di timeout del thread chiamante.

Nota

Se un blocco consente la ricorsione, un thread che ha immesso il blocco in modalità aggiornabile può immettere in modo ricorsivo la modalità aggiornabile, anche se altri thread sono in attesa di immettere la modalità di scrittura.

Si applica a