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 Thread.VolatileRead (Object)

 

Data di pubblicazione: ottobre 2016

Legge il valore di un campo. Tale valore è l'ultimo che è stato scritto da un processore qualsiasi in un computer, indipendentemente dal numero di processori o dallo stato della cache del processore.

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

public static object VolatileRead(
	ref object address
)

Parametri

address
Type: System.Object

Campo da leggere.

Valore restituito

Type: System.Object

Ultimo valore scritto nel campo da un processore.

VolatileRead e VolatileWrite per casi speciali di sincronizzazione. In circostanze normali, il linguaggio c# lock istruzione, Visual Basic SyncLock istruzione e la Monitor classe rappresentano alternative più semplici.

In un sistema multiprocessore, VolatileRead Ottiene l'ultimo valore scritto in una posizione di memoria da qualsiasi processore. Questo potrebbe essere necessario svuotare la cache del processore.

Anche in un sistema monoprocessore, VolatileRead e VolatileWrite garantiscono che un valore letto o scritto nella memoria e non memorizzato nella cache (ad esempio, in un registro del processore). Pertanto, è possibile utilizzare tali per sincronizzare l'accesso a un campo che può essere aggiornato da un altro thread o dall'hardware.

Questo metodo influisce solo un singolo accesso alla memoria. Per garantire la sincronizzazione efficace di un campo, è necessario utilizzare tutti gli accessi al campo VolatileRead o VolatileWrite.

System_CAPS_noteNota

In c#, utilizzando il volatile modificatore su un campo garantisce che tutti gli accessi a tale campo utilizzano VolatileRead o VolatileWrite.

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