System.AtomicCmpExchange
Delphi
function AtomicCmpExchange(var Target; NewValue: <Integer or NativeInt or Pointer>; Comparand: <Integer or NativeInt or Pointer>; [out Succeeded: Boolean]): Integer; overload;
function AtomicCmpExchange(var Target; NewValue: <Integer or NativeInt or Pointer>; Comparand: <Integer or NativeInt or Pointer>; [out Succeeded: Boolean]): Int64; overload;
function AtomicCmpExchange(var Target; NewValue: <Integer or NativeInt or Pointer>; Comparand: <Integer or NativeInt or Pointer>; [out Succeeded: Boolean]): Pointer; overload;
function AtomicCmpExchange(var Target; NewValue: <Integer or NativeInt or Pointer>; Comparand: <Integer or NativeInt or Pointer>; [out Succeeded: Boolean]): NativeInt; overload;
function AtomicCmpExchange(var Target; NewValue: <Integer or NativeInt or Pointer>; Comparand: <Integer or NativeInt or Pointer>; [out Succeeded: Boolean]): Integer; overload;
function AtomicCmpExchange(var Target; NewValue: <Integer or NativeInt or Pointer>; Comparand: <Integer or NativeInt or Pointer>; [out Succeeded: Boolean]): Int64; overload;
function AtomicCmpExchange(var Target; NewValue: <Integer or NativeInt or Pointer>; Comparand: <Integer or NativeInt or Pointer>; [out Succeeded: Boolean]): Pointer; overload;
function AtomicCmpExchange(var Target; NewValue: <Integer or NativeInt or Pointer>; Comparand: <Integer or NativeInt or Pointer>; [out Succeeded: Boolean]): NativeInt; overload;
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
function | public | System.pas | System | System |
Beschreibung
Unteilbare (atomic) intrinsische Vergleichen-und-Austauschen-Funktion für mobile Delphi-Compiler. Vergleicht den Inhalt des Ziels (Target
) mit einem gegebenen Wert (Comparand
). Wenn beide Werte gleich sind, wird der Inhalt des Ziels Target
durch den neuen Wert ersetzt.
Diese Funktion gibt immer den ursprünglichen Wert von (Target
) zurück. Wenn der Parameter Succeeded
angegeben ist, wird Succeeded
bei einem Werteaustausch der Wert True
zugewiesen (auch wenn Target
und NewValue
gleich sind); ansonsten wird False
zugewiesen.
Da die mobilen Delphi-Compiler keinen integrierten Assembler unterstützen, enthält die Unit System vier intrinsische "Atomic"-Funktionen, mit denen Speicherwerte unteilbar ausgetauscht, verglichen und ausgetauscht, inkrementiert und dekrementiert werden können.
AtomicCmpExchange wird zum Vergleichen und Austauschen von Speicherwerten verwendet.
Mit unteilbaren Operationen werden:
- Primitive, blockierende Multithreaded-Klassen implementiert
- Primitive Klassen bereitgestellt, die für die Implementierung von sogenannten "nicht-blockierenden" Strukturen erforderlich sind
Siehe auch
- System.AtomicExchange
- System.AtomicDecrement
- System.AtomicIncrement
- Migrieren von Delphi-Code zu mobilen Anwendungen vom Desktop aus
- DCCIOS32.EXE: Der Delphi-Compiler für den iOS-Simulator
- DCCIOSARM.EXE: Der Delphi-Compiler für 32-Bit-iOS-Geräte
- DCCIOSARM64.EXE: Der Delphi-Compiler für 64-Bit-iOS-Geräte