OpCodes.Volatile OpCodes.Volatile OpCodes.Volatile OpCodes.Volatile Field

定義

現在評価スタックの一番上にあるアドレスが揮発性である可能性があるため、この位置の読み取り結果をキャッシュできないこと、またはこの位置への複数の格納を中止できないことを指定します。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 

フィールド値

注釈

次の表は、命令の16進形式と Microsoft 中間言語 (MSIL) のアセンブリ形式と、簡単なリファレンスの概要を示しています。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 13FE 13 やすい.volatile. 後続のポインター参照が 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.

volatilevolatile. アドレスが 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. アクセスを volatile としてマークすると、その単一のアクセスのみに影響します。同じ場所への他のアクセスは、個別にマークする必要があります。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.

@No__t-0 および volatile のプレフィックスは、どちらの順序でも組み合わせることができます。The Unaligned and volatile prefixes can be combined in either order. @No__t-0、`stind`、`ldfld`、`stfld`、@no__t 4、stobjinitblk、または cpblk 命令の直前に配置する必要があります。They must immediately precede a ldind, stind, ldfld, stfld, ldobj, stobj, initblk, or cpblk instruction. @No__t-1 と @no__t 2 の手順では、@no__t 0 のプレフィックスのみを使用できます。Only the volatile prefix is allowed for the Ldsfld and Stsfld instructions.

次の Emit メソッドオーバーロードは、volatile オペコードを使用できます。The following Emit method overload can use the volatile opcode:

  • ILGenerator (オペコード)ILGenerator.Emit(OpCode)

適用対象