System.SyncObjs.TInterlocked.CompareExchange

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

class function CompareExchange(var Target: Pointer; Value: Pointer; Comparand: Pointer): Pointer; overload; static; inline;
class function CompareExchange(var Target: Integer; Value: Integer; Comparand: Integer): Integer; overload; static; inline;
class function CompareExchange(var Target: Integer; Value: Integer; Comparand: Integer; out Succeeded: Boolean): Integer; overload; static;
class function CompareExchange(var Target: Int64; Value: Int64; Comparand: Int64): Int64; overload; static; inline;
class function CompareExchange(var Target: TObject; Value: TObject; Comparand: TObject): TObject; overload; static; inline;
class function CompareExchange(var Target: Double; Value: Double; Comparand: Double): Double; overload; static; inline;
class function CompareExchange(var Target: Single; Value: Single; Comparand: Single): Single; overload; static; inline;
class function CompareExchange<T: class>(var Target: T; Value: T; Comparand: T): T; overload; static; inline;

C++

static void * __fastcall CompareExchange(void * &Target, void * Value, void * Comparand)/* overload */;
static int __fastcall CompareExchange(int &Target, int Value, int Comparand)/* overload */;
static int __fastcall CompareExchange(int &Target, int Value, int Comparand, /* out */ bool &Succeeded)/* overload */;
static __int64 __fastcall CompareExchange(__int64 &Target, __int64 Value, __int64 Comparand)/* overload */;
static System::TObject* __fastcall CompareExchange(System::TObject* &Target, System::TObject* Value, System::TObject* Comparand)/* overload */;
static double __fastcall CompareExchange(double &Target, double Value, double Comparand)/* overload */;
static float __fastcall CompareExchange(float &Target, float Value, float Comparand)/* overload */;
template<typename T> static T __fastcall CompareExchange(T &Target, T Value, T Comparand)/* overload */;

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
function public
System.SyncObjs.pas
System.SyncObjs.hpp
System.SyncObjs TInterlocked


Beschreibung

Vergleicht die Inhalte von Target und Comparand. Wenn sie gleich sind, wird der Inhalt von Target geändert.

CompareExchange vergleicht den Target-Wert mit dem Comparand-Wert. Wenn der Target-Wert gleich dem Comparand-Wert ist, dann wird der Value-Wert an der durch Target angegebenen Adresse gespeichert. Ansonsten wird nichts ausgeführt.

Es gibt acht Überladungen für CompareExchange. Eine davon akzeptiert den zusätzlichen Parameter Succeeded. Dieser Parameter erhält den Wert True bei Erfolg des Vorgangs und ansonsten False.

Die letzte Methode hat generische Parameter und einen generischen Rückgabetyp. Sie kann Parameter mit jedem Objekttyp übernehmen.

Siehe auch