Freigeben über


OpCodes.Volatile Feld

Definition

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.

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 

Feldwert

Hinweise

In der folgenden Tabelle sind das Hexadezimal- und MSIL-Assemblyformat (Microsoft Intermediate Language) der Anweisung sowie eine kurze Referenzzusammenfassung aufgeführt:

Format Assemblyformat BESCHREIBUNG
FE 13 Flüchtige. Gibt an, dass der nachfolgende Zeigerverweis flüchtig ist.

Das Übergangsverhalten des Stapels in sequenzieller Reihenfolge lautet:

  1. Eine Adresse wird in den Stapel gepusht.

volatile. gibt an, dass die Adresse eine flüchtige Adresse ist (d. h., sie kann extern auf den aktuellen Ausführungsthread verwiesen werden) und dass die Ergebnisse des Lesens dieses Speicherorts nicht zwischengespeichert werden können oder dass mehrere Speicher an diesem Speicherort nicht unterdrückt werden können. Das Markieren eines Zugriffs als volatile wirkt sich nur auf diesen einzelnen Zugriff aus. Andere Zugriffe auf denselben Speicherort müssen separat gekennzeichnet werden. Der Zugriff auf flüchtige Standorte muss nicht atomar durchgeführt werden.

Die Unaligned Präfixe und volatile können in jeder Reihenfolge kombiniert werden. Sie müssen unmittelbar einer ldind- , stind, ldfld, stfld, ldobjstobj, initblk- oder cpblk -Anweisung vorangehen. Für die Anweisungen und Stsfld ist nur das Ldsfldvolatile Präfix zulässig.

Die folgende Emit Methodenüberladung kann den volatile Opcode verwenden:

Gilt für: