次の方法で共有


InterlockedExchange8 関数 (winnt.h)

8 ビット変数をアトミック操作として指定した値に設定します。

ポインター変数を操作するには、InterlockedExchangePointer 関数を使用します。

16 ビット変数を操作するには、InterlockedExchange16 関数を使用します。

32 ビット変数を操作するには、InterlockedExchange 関数を使用します。

64 ビット変数を操作するには、InterlockedExchange64 関数を使用します。

構文

CHAR InterlockedExchange8(
  [in, out] CHAR volatile *Target,
  [in]      CHAR          Value
);

パラメーター

[in, out] Target

交換する値へのポインター。 この関数は、この変数を Valueに設定し、その前の値を返します。

[in] Value

Targetが指す値と交換する値。

戻り値

この関数は、Target パラメーターの初期値を返します。

備考

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

この関数は、可能な限りコンパイラ組み込みを使用して実装されます。 詳細については、WinBase.h ヘッダー ファイルと _InterlockedExchange8を参照してください。

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

この機能は、Windows RT ベースのシステムでサポートされています。
 

必要条件

要件 価値
サポートされる最小クライアント Windows 8 [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2012 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winnt.h (Windows.h を含む)

関連項目

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

InterlockedCompareExchange の

InterlockedExchange の

InterlockedExchange16

InterlockedExchange16Acquire の

InterlockedExchange16NoFence

InterlockedExchange64 の

InterlockedExchangeAcquire の

InterlockedExchangeAcquire64 の

InterlockedExchangeAdd の

InterlockedExchangeNoFence

InterlockedExchangeNoFence64

InterlockedExchangePointer の

InterlockedExchangePointerAcquire の

InterlockedExchangePointerNoFence の

InterlockedExchangeSubtract の

同期関数の