OpCodes.Volatile Поле
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает, что адрес на вершине стека вычислений, возможно, является изменяемым и результаты чтения данной области невозможно кэшировать либо невозможно запретить множественные сохранения в эту область.
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
Значение поля
Комментарии
В следующей таблице приведен шестнадцатеричный формат инструкции и формат сборки msil, а также краткий обзор:
Формат | Формат сборки | Описание |
---|---|---|
FE 13 | Летучих. | Указывает, что последующая ссылка на указатель является переменной. |
Переходный режим стека в последовательном порядке:
- Адрес помещается в стек.
volatile
. указывает, что адрес является изменяющимся адресом (то есть на него можно ссылаться извне на текущий поток выполнения), а результаты чтения этого расположения не могут быть кэшированы или что несколько хранилищ в этом расположении не могут быть подавлены. Пометка доступа как volatile
влияет только на один доступ; другие доступы к тому же расположению должны быть помечены отдельно. Доступ к непостоянным расположениям не требуется выполнять атомарным образом.
Префиксы Unaligned и volatile
можно объединять в любом порядке. Они должны непосредственно предшествовать ldind
инструкциям , stind
, stfld
ldfld
, ldobj
, stobj
, initblk
, или cpblk
. Для инструкций volatile
и Stsfld разрешен Ldsfld только префикс.
Следующая Emit перегрузка volatile
метода может использовать код операции: