OpCodes.Volatile-Feld
Gibt an, dass es sich bei einer Adresse, die sich momentan oben auf dem Auswertungsstapel befindet, möglicherweise um eine flüchtige Adresse handelt und daher die aus diesem Speicherort gelesenen Ergebnisse nicht zwischengespeichert werden können oder mehrere für diesen Speicherort ausgeführte Speichervorgänge nicht unterdrückt werden können.
Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Shared ReadOnly Volatile As OpCode
'Usage
Dim value As OpCode
value = OpCodes.Volatile
public static readonly OpCode Volatile
public:
static initonly OpCode Volatile
public static final OpCode Volatile
public static final var Volatile : OpCode
Hinweise
In der folgenden Tabelle werden das hexadezimale und das Assemblyformat der MSIL (Microsoft Intermediate Language) jeweils mit einer Kurzreferenz aufgeführt:
Format |
Assemblyformat |
Beschreibung |
---|---|---|
FE 13 |
volatile. |
Gibt an, dass der nachfolgende Zeigerverweis flüchtig ist. |
Im Stapel laufen die folgenden Aktionen in der angegebenen Reihenfolge ab:
- Eine Adresse wird auf dem Stapel abgelegt.
volatile gibt an, dass es sich bei der Adresse um eine flüchtige Adresse handelt (d. h., es kann von außen auf den aktuellen Ausführungsthread verwiesen werden) und die aus diesem Speicherplatz gelesenen Ergebnisse nicht zwischengespeichert werden können oder mehrere Speichervorgänge für diesen Speicherort nicht unterdrückt werden können. Das Markieren eines Zugriffs als volatile wirkt sich nur auf diesen einen Zugriff aus. Weitere Zugriffe auf denselben Speicherort müssen separat markiert werden. Der Zugriff auf flüchtige Speicherorte muss nicht atomar ausgeführt werden.
Das Unaligned-Präfix und das volatile-Präfix können in beliebiger Reihenfolge miteinander kombiniert werden. Sie müssen unmittelbar einer ldind-Anweisung, stind-Anweisung, ldfld-Anweisung, stfld-Anweisung, ldobj-Anweisung, stobj-Anweisung, initblk-Anweisung oder cpblk-Anweisung vorangehen. Für die Ldsfld-Anweisung und die Stsfld-Anweisung darf nur das volatile-Präfix verwendet werden.
Die folgende Überladung der Emit-Methode verwendet den volatile-Opcode:
- ILGenerator.Emit(OpCode)
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
OpCodes-Klasse
OpCodes-Member
System.Reflection.Emit-Namespace