CreateDispatcherQueueController 関数 (dispatcherqueue.h)
DispatcherQueueController を作成します。 作成した DispatcherQueueController を使用して DispatcherQueue の有効期間を作成および管理し、ディスパッチャー キューのスレッドでキューに登録されたタスクを優先順位で実行します。
構文
HRESULT CreateDispatcherQueueController(
[in] DispatcherQueueOptions options,
[out] PDISPATCHERQUEUECONTROLLER *dispatcherQueueController
);
パラメーター
[in] options
作成された DispatcherQueueController のスレッド 関係と COM アパートメントの種類。 詳細については、「解説」を参照してください。
[out] dispatcherQueueController
作成されたディスパッチャー キュー コントローラー。
戻り値
成功のためのS_OK ;それ以外の場合は、エラー コード。
注釈
Windows 10 バージョン 1709 で導入されました。
options.threadType がDQTYPE_THREAD_DEDICATED場合、この関数はスレッドを作成し、指定された COM アパートメントで初期化し、DispatcherQueue をそのスレッドに関連付けます。 ディスパッチャー キュー イベント ループは、ディスパッチャー キューが明示的にシャットダウンされるまで、新しい専用スレッドで実行されます。 スレッドリークとメモリ リークを回避するには、ディスパッチャー キューが終了したら 、DispatcherQueueController.ShutdownQueueAsync を呼び出します。
options.threadType がDQTYPE_THREAD_CURRENTされている場合は、DispatcherQueue が作成され、現在のスレッドに関連付けられます。 現在のスレッドに関連付けられている DispatcherQueue が既にある場合は、エラーが発生します。 ディスパッチャー キューがタスクをディスパッチできるようにするには、現在のスレッドがメッセージをポンプする必要があります。 現在のスレッドが終了する前に、 DispatcherQueueController.ShutdownQueueAsync を呼び出し、 IAsyncAction が完了するまでメッセージのポンプ処理を続ける必要があります。
この呼び出しは 、DispatcherQueueController と新しいスレッド (存在する場合) が作成されるまで戻りません。
要件
対象プラットフォーム | Windows |
ヘッダー | dispatcherqueue.h |
Library | CoreMessaging.lib |
[DLL] | CoreMessaging.dll |