Thread.VolatileWrite Method (Byte, Byte)

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)

public static void VolatileWrite(
	ref byte address,
	byte value
)

Parameters

address
Type: System.Byte

The field to which the value is to be written.

value
Type: System.Byte

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.

NoteNote

In C#, using the volatile modifier on a field guarantees that all access to that field uses VolatileRead or VolatileWrite.

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2015 Microsoft