0

私はソケットプログラミングが初めてで、ドキュメントを読んでいます。

CloseThreadPool() 関数について見つけたドキュメントから:

CloseThreadpool 関数。スレッド プールにバインドされている未処理のコールバック オブジェクトがない場合、スレッド プールはすぐに閉じられます。存在する場合、それらの未処理のオブジェクトが解放されると、スレッド プールは非同期に解放されます。

このスレッド プールはスレッド自体にあります。私のメインスレッドは、終了のために入力を受け取ります。exit が入力された場合、グローバル変数 KEEP_LISTENEING を false に設定します。

この関数が別のスレッドで本当に完了するまで、メインスレッドが停止/スリープするのをどのように待ちますか?

4

1 に答える 1

0

クリーンアップ グループを使用して、すべてのコールバックを待ちます。シーケンスは次のとおりです。

  1. CreateThreadpoolCleanupGroup()

  2. SetThreadpoolCallbackCleanupGroup(&CallbackEnvironment, pointerCleanup, ...)

  3. CloseThreadpoolCleanupGroupMembers(, FALSE, )

  4. CloseThreadpoolCleanupGroup()

于 2012-08-14T11:47:27.777 に答える