ReaderWriterLockSlim.TryEnterUpgradeableReadLock Metodo

Definizione

Prova a immettere il blocco in modalità aggiornabile, con un timeout facoltativo.

Overload

Nome Descrizione
TryEnterUpgradeableReadLock(Int32)

Prova a immettere il blocco in modalità aggiornabile, con un timeout facoltativo.

TryEnterUpgradeableReadLock(TimeSpan)

Prova a immettere il blocco in modalità aggiornabile, con un timeout facoltativo.

TryEnterUpgradeableReadLock(Int32)

Prova a immettere 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 o -1 (Infinite) di attesa illimitata.

Valori restituiti

true se il thread chiamante è entrato in modalità aggiornabile; in caso contrario, false.

Eccezioni

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

oppure

Il thread corrente ha inizialmente immesso il blocco in modalità di lettura e quindi il tentativo di accedere alla modalità aggiornabile creerebbe la possibilità di un deadlock.

oppure

Il numero di ricorsione supera la capacità del contatore. Il limite è così elevato che le applicazioni non devono mai incontrarlo.

Il valore di millisecondsTimeout è negativo, ma non è uguale a Infinite (-1), che è 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 da ReaderWriterLockSlim in modalità di lettura, ma potrebbe essere necessario attivare la modalità di scrittura se vengono soddisfatte determinate condizioni. Un thread in modalità aggiornabile può eseguire l'aggiornamento alla modalità di scrittura o effettuare il downgrade alla modalità di lettura.

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

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

Note

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

Si applica a

TryEnterUpgradeableReadLock(TimeSpan)

Prova a immettere 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 o -1 millisecondi di attesa illimitata.

Valori restituiti

true se il thread chiamante è entrato in modalità aggiornabile; in caso contrario, false.

Eccezioni

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

oppure

Il thread corrente ha inizialmente immesso il blocco in modalità di lettura e quindi il tentativo di accedere alla modalità aggiornabile creerebbe la possibilità di un deadlock.

oppure

Il numero di ricorsione supera la capacità del contatore. Il limite è così elevato che le applicazioni non devono mai incontrarlo.

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 da ReaderWriterLockSlim in modalità di lettura, ma potrebbe essere necessario attivare la modalità di scrittura se vengono soddisfatte determinate condizioni. Un thread in modalità aggiornabile può eseguire l'aggiornamento alla modalità di scrittura o effettuare il downgrade alla modalità di lettura.

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

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

Note

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

Si applica a