Thread.VolatileWrite Method (Double, Double)
Writes a value to a field immediately, so that the value is visible to all processors in the computer.
Namespace: System.Threading
Assembly: mscorlib (in mscorlib.dll)
Parameters
- address
- Type: System.Double
The field to which the value is to be written.
- value
- Type: System.Double
The value to be written.
VolatileRead and VolatileWrite are for special cases of synchronization. Under normal circumstances, the C# lock statement, the Visual Basic SyncLock statement, and the Monitor class provide easier alternatives.
On a multiprocessor system, VolatileWrite ensures that a value written to a memory location is immediately visible to all processors. This might require flushing processor caches.
Even on a uniprocessor system, VolatileRead and VolatileWrite ensure that a value is read or written to memory, and not cached (for example, in a processor register). Thus, you can use them to synchronize access to a field that can be updated by another thread, or by hardware.
Calling this method affects only a single memory access. To provide effective synchronization for a field, all access to the field must use VolatileRead or VolatileWrite.
Note |
|---|
In C#, using the volatile modifier on a field guarantees that all access to that field uses VolatileRead or VolatileWrite. |
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Note