次の方法で共有


InterlockedXor 関数 (winnt.h)

指定した LONG 値に対してアトミック XOR 操作を実行します。 関数は、複数のスレッドが同じ変数を同時に使用できないようにします。

構文

LONG InterlockedXor(
  [in, out] LONG volatile *Destination,
  [in]      LONG          Value
);

パラメーター

[in, out] Destination

最初のオペランドへのポインター。 この値は、操作の結果に置き換えられます。

[in] Value

2 番目のオペランド。

戻り値

関数は Destination パラメーターの元の値を返します。

解説

インターロック関数は、複数のスレッドによって共有される変数へのアクセスを同期するための簡単なメカニズムを提供します。 この関数は、他のインターロックされた関数の呼び出しに関してアトミックです。

Intel Itanium ベースのシステムと x64 アーキテクチャの場合、この関数はコンパイラ組み込みを使用して実装されます。 x86 アーキテクチャの場合は、 _InterlockedXor コンパイラ組み込みを直接使用します。

この関数は、メモリ操作が順番に完了するように、完全なメモリ バリア (またはフェンス) を生成します。

Itanium ベースのシステム: パフォーマンスクリティカルなアプリケーションの場合は、代わりに InterlockedXorAcquire または InterlockedXorRelease を使用してください。

メモ この関数は、Windows RT ベースのシステムでサポートされています。
 

要件

   
対象プラットフォーム Windows
ヘッダー winnt.h (Windows.h を含む)

関連項目

インタロックされた変数アクセス

InterlockedXor16

InterlockedXor16Acquire

InterlockedXor16NoFence

InterlockedXor16Release

InterlockedXor64

InterlockedXor64Acquire

InterlockedXor64NoFence

InterlockedXor64Release

InterlockedXor8

InterlockedXor8Acquire

InterlockedXor8NoFence

InterlockedXor8Release

InterlockedXorAcquire

InterlockedXorNoFence

InterlockedXorRelease

同期関数