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 を含む) |