次の方法で共有


DisassociateCurrentThreadFromCallback 関数 (threadpoolapiset.h)

現在実行中のコールバック関数と、コールバックを開始したオブジェクトとの間の関連付けを削除します。 現在のスレッドは、オブジェクトの代わりにコールバックを実行するとカウントされなくなります。

構文

void DisassociateCurrentThreadFromCallback(
  [in, out] PTP_CALLBACK_INSTANCE pci
);

パラメーター

[in, out] pci

コールバック インスタンスを定義する TP_CALLBACK_INSTANCE 構造体へのポインター。 ポインターはコールバック関数に渡されます。

戻り値

なし

解説

これがオブジェクトに代わってコールバックを実行する最後のスレッドである場合、オブジェクトのコールバックの完了を待機しているスレッドはすべて解放されます。

スレッドがスレッド プールに戻るまで、スレッドはオブジェクトの クリーンアップ グループ に関連付けられたままになります。 これにより、DLL シャットダウン ルーチンは未処理のコールバックと安全に同期し、すべてのコールバックが完了したときに DLL のコードのアンロードを続行できます。

コールバック生成オブジェクトは、コールバックの期間中有効なままです。 コールバック オブジェクトは再利用または解放できます (ただし、クリーンアップ グループリリースとの同期は必要です)。

この関数を使用するアプリケーションをコンパイルするには、_WIN32_WINNTを 0x0600 以上として定義します。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー threadpoolapiset.h (Windows 7、Windows Server 2008 Windows Server 2008 R2 の Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

CallbackMayRunLong

FreeLibraryWhenCallbackReturns

LeaveCriticalSectionWhenCallbackReturns

ReleaseMutexWhenCallbackReturns

ReleaseSemaphoreWhenCallbackReturns

SetEventWhenCallbackReturns

スレッド プール

TrySubmitThreadpoolCallback