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

# XTaskQueueDispatchMode

> XTaskQueueDispatchMode

# XTaskQueueDispatchMode

描述如何处理任务队列回调。

## Syntax

```cpp theme={null}
typedef enum class XTaskQueueDispatchMode  : uint32_t  
{  
    Manual,  
    ThreadPool,  
    SerializedThreadPool,  
    Immediate  
} XTaskQueueDispatchMode  
```

## Constants

| 常量                   | 说明                                                                                                                                                                                                                                                                                                                                                          |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Manual               | 不会自动调度回调。使用此调度模式提交到端口的回调会排队，但必须由 [XTaskQueueDispatch](/reference/system/xtaskqueue/functions/xtaskqueuedispatch) 手动调度。<br />**注意：** 如果你有一个抽取 Windows 消息的线程：<ul><li>请勿为工作端口调度回调</li><li>如果你为完成端口调度回调，则必须继续为该线程抽取 Windows 消息</li></ul><br />有关详细信息，请参阅[创建手动任务队列](/build/core-features/common/async/async-task-queue-design-howto/creating-manual-task-queue)。 |
| ThreadPool           | 使用此调度模式提交到端口的回调会排队，并自动在系统线程队列上调度。任务队列会并行执行调用，随着线程池线程变得可用，依次从任务队列中取出调用来执行。<br />有关创建线程池任务队列的详细信息，请参阅[创建线程池任务队列](/build/core-features/common/async/async-task-queue-design-howto/creating-thread-pool-task-queue)。                                                                                                                                            |
| SerializedThreadPool | 使用此调度模式提交到端口的回调会排队，并自动在系统线程队列上调度。与 `ThreadPool` 不同，任务队列在线程池上串行地一次执行一个调用。                                                                                                                                                                                                                                                                                    |
| Immediate            | 回调根本不会排队，而是立即在提交它们的线程上执行。有关实现即时调度模式的示例，请参阅[创建复合任务队列](/build/core-features/common/async/async-task-queue-design-howto/creating-composite-task-queue)。                                                                                                                                                                                                        |

## Remarks

[XTaskQueueCreate](/reference/system/xtaskqueue/functions/xtaskqueuecreate) 使用此枚举来指定任务队列的工作端口和完成端口的调度模式。

工作端口和完成端口可以使用不同的调度模式。例如，可以对工作端口使用线程池调度模式，以在系统线程队列上自动排队并并行执行回调；对完成端口使用手动调度模式，以在 Windows 消息循环线程上手动排队和执行回调。有关详细信息，请参阅[将任务队列与 Windows 消息循环配合使用](/build/core-features/common/async/async-task-queue-design-howto/task-queue-windows-msg-loop)。

## Requirements

**头文件：** XTaskQueue.h

**受支持的平台：** Windows、XBOX One 系列主机和 XBOX Series 主机

## See also

[XTaskQueue 成员](/reference/system/xtaskqueue/xtaskqueue_members)\
[异步编程模型](/build/core-features/common/async/async-programming-model)\
[异步任务队列设计](/build/core-features/common/async/async-task-queue-design)


## Related topics

- [XTaskQueueCreate](/zh-CN/reference/system/xtaskqueue/functions/xtaskqueuecreate.md)
- [XTaskQueueDispatch](/zh-CN/reference/system/xtaskqueue/functions/xtaskqueuedispatch.md)
- [XTaskQueue](/zh-CN/reference/system/xtaskqueue/xtaskqueue_members.md)
- [在 PlayFab 统一 SDK 中进行异步调用](/zh-CN/services/playfab/sdks/unified-sdk/async-model.md)
- [进行异步调用](/zh-CN/services/playfab/sdks/c/async.md)
