System.SyncObjs.TInterlocked.CompareExchange

提供: RAD Studio API Documentation
移動先: 案内検索

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 */;

プロパティ

種類 可視性 ソース ユニット
function public
System.SyncObjs.pas
System.SyncObjs.hpp
System.SyncObjs TInterlocked

説明

TargetComparand を比較し、等しい場合は Target を書き換えます。

CompareExchangeTarget の値と Comparand の値を比較します。もし Target の値が Comparand の値と等しいなら、Value の値を Target で指定したアドレスに格納します。そうでなければ、何も実行されません。

このメソッドは、実行前の Target の値を返します。

CompareExchange のオーバーロードは 8 つあります。このうちの 1 つは追加の Succeeded のパラメータを持ちます。処理が成功すれば True を、それ以外の場合は False を格納します。最後のジェネリック メソッドは型パラメータを持ち、引数と返り値を、様々な型のパラメータで受け取ることができます。

関連項目