> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# タスク キューのディスパッチ例

> 完了ポートに対して XTaskQueueDispatch をループで呼び出す専用スレッドを生成し、タスク キューが終了するまでコールバックを実行する方法を示します。

このトピックでは、タスク キューをディスパッチする方法の例を示します。タスク キューのディスパッチは、[手動](https://docs.xbox.com/ja-jp/reference/system/xtaskqueue/enums/xtaskqueuedispatchmode.md) の各ポートで必要です。ポートを [ディスパッチ](https://docs.xbox.com/ja-jp/reference/system/xtaskqueue/functions/xtaskqueuedispatch.md) する方法とタイミングによって、エンキューされたコールバックのスレッド化された同時実行の動作が決まります。

```c++ theme={null}
std::thread dispatherThread = std::thread(
    [taskQueue]()
    {
        while (true)
        {
            bool processed = XTaskQueueDispatch(taskQueue,
                XTaskQueuePort::Completion, INFINITE);

            if (!processed)
            {
                // The task queue has been terminated, so return.
                break;
            }
        }
    });
```

この例では、渡されたタスク キューの完了ポートが終了するまで、それを絶えずディスパッチするために追加のスレッドを生成しています。

## リファレンス API ドキュメント

* [XTaskQueue (API 目次)](https://docs.xbox.com/ja-jp/reference/system/xtaskqueue/xtaskqueue_members.md)
  * 関数
    * [xtaskqueuedispatch](https://docs.xbox.com/ja-jp/reference/system/xtaskqueue/functions/xtaskqueuedispatch.md)

## 関連項目

[XTaskQueue ライブラリの概要](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xtaskqueue.md)

[タスク キューの作成 (例)](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-create-task-queue.md)

[タスク キューのクリーンアップ (例)](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-cleanup-task-queue.md)

[タスク キューの設計](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-task-queue-design.md)

[XTaskQueue](https://docs.xbox.com/ja-jp/reference/system/xtaskqueue/xtaskqueue_members.md)


## Related topics

- [非同期タスク プログラミング向け XAsync ライブラリ](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/index.md)
- [方法: イベントを使用した手動キュー ディスパッチの制御](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-task-queue-design-howto/control-manual-queue-dispatching.md)
- [非同期タスク キューの設計](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-task-queue-design.md)
- [タスク キューの作成例](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-create-task-queue.md)
- [タスク キューのクリーンアップ例](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-cleanup-task-queue.md)
