OpCodes.Volatile Field
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
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.
public: static initonly System::Reflection::Emit::OpCode Volatile;
public static readonly System.Reflection.Emit.OpCode Volatile;
staticval mutable Volatile : System.Reflection.Emit.OpCode
Public Shared ReadOnly Volatile As OpCode
Field Value
Remarks
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:
- 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: