System.SyncObjs.TInterlocked.CompareExchange
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.