XTaskQueueDispatch
指定されたポートのタスク キュー内の項目を処理します。構文
パラメーター
queue _In_Type: XTaskQueueHandle 作業をディスパッチする対象のキューです。 port _In_
Type: XTaskQueuePort ディスパッチするポートです。 timeoutInMs _In_
Type: uint32_t false を返す前に作業の到着を待機するミリ秒数です。永久に待機するには INFINITE を渡すことができます。
戻り値
Type: bool この関数が呼び出しをディスパッチした場合は true を、そうでない場合は false を返します。この関数は、タイムアウトとして INFINITE が渡された場合でも、キューが終了している場合には false を返します。解説
タイムアウトを渡すことができ、これにより XTaskQueueDispatch はキューに何かが到着するまで待機します。 タスク キュー ポートが XTaskQueueDispatchMode::ThreadPool、XTaskQueueDispatchMode::SerializedThreadPool、または XTaskQueueDispatchMode::Immediate のディスパッチ モードで作成されている場合、コールバックは自動的にディスパッチされます。手動ディスパッチ ポートについては XTaskQueueDispatch を呼び出す必要があります。XTaskQueueDispatch は任意のディスパッチ モードに対して呼び出すことができますが、呼び出しは常に XTaskQueueDispatch を呼び出したスレッド上でディスパッチされることに注意してください。上位のコードのパフォーマンス要件を満たすためには、キューへの項目の追加はロックフリーかつ待機フリーである必要があります。次の API はロックフリーです:
- XTaskQueueSubmitCallback
- XTaskQueueSubmitDelayedCallback
- XTaskQueueDispatch (ただし timeoutInMs に 0 が渡される場合)
XTaskQueueDispatch がワーク ポートからの項目を処理するときに費やす時間は変動し、実行される作業に依存します。 場合によっては、呼び出し元のスレッドは他のシステム作業の完了を待機してブロックされることがあります。 次の例では、XTaskQueueDispatch 関数を使用してタスク キュー内の項目を処理する方法を示します。
SubmitCallback は、XTaskQueueSubmitCallback 関数のコード例で定義されているヘルパー関数です。
要件
ヘッダー: XTaskQueue.h ライブラリ: xgameruntime.lib サポートされているプラットフォーム: Windows、XBOX One 本体、XBOX Series 本体概念ドキュメント
関連項目
XTaskQueue members非同期プログラミング モデル
非同期タスク キューの設計
