OpCodes.Volatile Field

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Specifies that an address currently atop the evaluation stack might be volatile, and the results of reading that location cannot be cached or that multiple stores to that location cannot be suppressed.

Namespace:   System.Reflection.Emit
Assembly:  mscorlib (in mscorlib.dll)

public static readonly OpCode Volatile

The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:

Format

Assembly Format

Description

FE 13

volatile.

Indicates that the subsequent pointer reference is volatile.

The stack transitional behavior, in sequential order, is:

  1. An address is pushed onto the stack.

volatile. specifies that the address is a volatile address (that is, it can be referenced externally to the current thread of execution) and the results of reading that location cannot be cached or that multiple stores to that location cannot be suppressed. Marking an access as volatile affects only that single access; other accesses to the same location must be marked separately. Access to volatile locations need not be performed atomically.

The Unaligned and volatile prefixes can be combined in either order. They must immediately precede a ldind, stind, ldfld, stfld, ldobj, stobj, initblk, or cpblk instruction. Only the volatile prefix is allowed for the Ldsfld and Stsfld instructions.

The following Emit method overload can use the volatile opcode:

  • ILGenerator.Emit(OpCode)

Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.1
Windows Phone
Available since 8.1
Return to top
Show: