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;
Propriétés
| Type | Visibilité | Source | Unité | Parent |
|---|---|---|---|---|
| function | public | System.pas | System | System |
Description
Fonction intrinsèque atomique Compare and Exchange utilisée avec les compilateurs mobiles Delphi. Compare le contenu de la cible à une valeur donnée (le comparateur) et, uniquement dans le cas où les valeurs sont semblables, remplace le contenu de la cible par la nouvelle valeur.
Cette fonction renvoie toujours la valeur originale de la cible. Dans le cas où un paramètre Succeeded est fourni, Succeeded vaut True s'il y a un échange de valeurs (même si la cible et la nouvelle valeur sont identiques), sinon il vaut False.
Les compilateurs Delphi ne supportant pas d'assembleur intégré, l'unité System fournit quatre fonctions intrinsèques atomiques qui procurent un moyen d'échanger, comparer et échanger, incrémenter et décrémenter des valeurs en mémoire.
La fonction AtomicCmpExchange est utilisée pour comparer et échanger des valeurs en mémoire.
Les opérations atomiques sont utilisées pour :
- Implémenter des primitives de verrou multi-thread.
- Fournir les primitives nécessaires pour implémenter des structures "libres de tout verrou".
Voir aussi
- System.AtomicExchange
- System.AtomicDecrement
- System.AtomicIncrement
- Migration du code Delphi en mobile depuis le bureau
- DCCIOS32.EXE, le compilateur Delphi pour le simulateur iOS
- DCCIOSARM.EXE, le compilateur Delphi pour le périphérique iOS 32 bits
- DCCIOSARM64.EXE, le compilateur Delphi pour le périphérique iOS 64 bits