> ## 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/zh-CN/reference/system/xtaskqueue/enums/xtaskqueuedispatchmode.md)端口都需要进行分派。端口[分派](https://docs.xbox.com/zh-CN/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/zh-CN/reference/system/xtaskqueue/xtaskqueue_members.md)
  * 函数
    * [xtaskqueuedispatch](https://docs.xbox.com/zh-CN/reference/system/xtaskqueue/functions/xtaskqueuedispatch.md)

## 另请参阅

[XTaskQueue 库概述](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xtaskqueue.md)

[创建任务队列（示例）](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-create-task-queue.md)

[清理任务队列（示例）](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-cleanup-task-queue.md)

[设计任务队列](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-task-queue-design.md)

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


## Related topics

- [清理任务队列示例](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-cleanup-task-queue.md)
- [创建任务队列示例](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-create-task-queue.md)
- [XTaskQueue 库概述](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xtaskqueue.md)
- [异步任务队列设计](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-task-queue-design.md)
- [如何：创建手动任务队列](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-task-queue-design-howto/creating-manual-task-queue.md)
