CreateDispatcherQueueController 関数 (dispatcherqueue.h)

DispatcherQueueController を作成します。 作成した DispatcherQueueController を使用して DispatcherQueue の有効期間を作成および管理し、ディスパッチャー キューのスレッドでキューに登録されたタスクを優先順位で実行します。

構文

HRESULT CreateDispatcherQueueController(
  [in]  DispatcherQueueOptions     options,
  [out] PDISPATCHERQUEUECONTROLLER *dispatcherQueueController
);

パラメーター

[in] options

作成された DispatcherQueueController のスレッド 関係と COM アパートメントの種類。 詳細については、「解説」を参照してください。

[out] dispatcherQueueController

作成されたディスパッチャー キュー コントローラー。

大事なDispatcherQueueController は WinRT オブジェクトです。
 

戻り値

成功のためのS_OK ;それ以外の場合は、エラー コード。

注釈

Windows 10 バージョン 1709 で導入されました。

options.threadTypeDQTYPE_THREAD_DEDICATED場合、この関数はスレッドを作成し、指定された COM アパートメントで初期化し、DispatcherQueue をそのスレッドに関連付けます。 ディスパッチャー キュー イベント ループは、ディスパッチャー キューが明示的にシャットダウンされるまで、新しい専用スレッドで実行されます。 スレッドリークとメモリ リークを回避するには、ディスパッチャー キューが終了したら 、DispatcherQueueController.ShutdownQueueAsync を呼び出します。

options.threadTypeDQTYPE_THREAD_CURRENTされている場合は、DispatcherQueue が作成され、現在のスレッドに関連付けられます。 現在のスレッドに関連付けられている DispatcherQueue が既にある場合は、エラーが発生します。 ディスパッチャー キューがタスクをディスパッチできるようにするには、現在のスレッドがメッセージをポンプする必要があります。 現在のスレッドが終了する前に、 DispatcherQueueController.ShutdownQueueAsync を呼び出し、 IAsyncAction が完了するまでメッセージのポンプ処理を続ける必要があります。

この呼び出しは 、DispatcherQueueController と新しいスレッド (存在する場合) が作成されるまで戻りません。

大事なDispatcherQueueController とそれに関連付けられている DispatcherQueue は、WinRT オブジェクトです。 使用状況の詳細については、そのドキュメントを参照してください。
 

要件

   
対象プラットフォーム Windows
ヘッダー dispatcherqueue.h
Library CoreMessaging.lib
[DLL] CoreMessaging.dll

こちらもご覧ください

DispatcherQueue

DispatcherQueueController