InterlockedIncrement 関数 (winnt.h)
指定した 32 ビット変数の値をアトミック操作としてインクリメント (1 ずつ増加) します。
64 ビット値を操作するには、 InterlockedIncrement64 関数を使用します。
構文
LONG InterlockedIncrement(
[in, out] LONG volatile *Addend
);
パラメーター
[in, out] Addend
インクリメントする変数へのポインター。
戻り値
関数は、結果として得られるインクリメントされた値を返します。
解説
Addend パラメーターが指す変数は、32 ビット境界に配置する必要があります。そうしないと、この関数はマルチプロセッサ x86 システムおよび x86 以外のシステムで予期しない動作をします。 「_aligned_malloc」を参照してください。
インターロックされた関数は、複数のスレッドによって共有される変数へのアクセスを同期するための簡単なメカニズムを提供します。 この関数は、他のインターロックされた関数の呼び出しに関してアトミックです。
この関数は、可能な場合はコンパイラ組み込みを使用して実装されます。 詳細については、WinBase.h ヘッダー ファイルと _InterlockedIncrementを参照してください。
この関数は、メモリ操作が順番に完了するように、完全なメモリ バリア (またはフェンス) を生成します。
Itanium ベースのシステム: パフォーマンスクリティカルなアプリケーションの場合は、代わりに InterlockedIncrementAcquire または InterlockedIncrementRelease を使用してください。
メモ この関数は、Windows RT ベースのシステムでサポートされています。
要件
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | winnt.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |