Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo ReaderWriterLock.UpgradeToWriterLock (TimeSpan)

 

Data di pubblicazione: novembre 2016

Aggiorna un blocco del lettore al blocco del writer, usando un valore TimeSpan per il timeout.

Spazio dei nomi:   System.Threading
Assembly:  mscorlib (in mscorlib.dll)

public LockCookie UpgradeToWriterLock(
	TimeSpan timeout
)

Parametri

timeout
Type: System.TimeSpan

Parametro TimeSpan che specifica il periodo di timeout.

Valore restituito

Type: System.Threading.LockCookie

Valore LockCookie.

Exception Condition
ApplicationException

timeout scade prima che la richiesta di blocco viene concesso.

ArgumentOutOfRangeException

timeout Specifica un valore negativo diverso da-1 millisecondi.

Quando un thread chiama UpgradeToWriterLock viene rilasciato il blocco di lettura, indipendentemente dal conteggio dei blocchi, e il thread ritorna alla fine della coda per il blocco del writer. In questo modo, altri thread possono scrivere nella risorsa prima che il thread che ha richiesto che l'aggiornamento viene concesso il blocco del writer.

System_CAPS_importantImportante

L'eccezione di timeout non viene generata fino a quando il thread che ha chiamato la UpgradeToWriterLock metodo possibile riacquisire il blocco del lettore. Se non sono presenti altri thread in attesa del blocco del writer, ciò si verifica immediatamente. Tuttavia, se un altro thread viene accodato per il blocco del writer, il thread che ha chiamato la UpgradeToWriterLock metodo non può riacquisire il blocco del lettore finché tutti i lettori correnti non hanno rilasciato i relativi blocchi e un thread ha acquisito e rilasciato il blocco del writer. Questo vale anche se altri thread che ha richiesto il blocco del writer richiesta dopo la chiamata al thread corrente di UpgradeToWriterLock metodo.

Per ripristinare lo stato del blocco, chiamare DowngradeFromWriterLock utilizzando il LockCookie restituito da UpgradeToWriterLock. Non utilizzare questo LockCookie con RestoreLock.

Quando un thread non ha alcun blocco di lettura, non utilizzare UpgradeToWriterLock. In alternativa, usare AcquireWriterLock.

Per valori di timeout validi, vedere ReaderWriterLock.

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: