XTaskQueueDispatchMode
说明如何处理任务队列回调。
语法
typedef enum class XTaskQueueDispatchMode : uint32_t
{
Manual,
ThreadPool,
SerializedThreadPool,
Immediate
} XTaskQueueDispatchMode
常量
常量 | 说明 |
---|---|
Manual | 回调不会自动调度。 使用此调度模式提交给端口的回调将排队,但必须通过 XTaskQueueDispatch 手动调度。 注意:如果拥有可注入 Windows 消息的线程:
有关详细信息,请参阅创建手动任务队列。 |
ThreadPool | 使用此调度方式提交给端口的回调将排队,并自动在系统线程队列中调度。 任务队列并行执行调用,在线程池线程可用时依次从任务队列中提取要执行的调用。 有关如何创建线程池任务队列的详细信息,请参阅创建线程池任务队列。 |
SerializedThreadPool | 使用此调度方式提交给端口的回调将排队,并自动在系统线程队列中调度。 与 ThreadPool 不同,任务队列会在线程池中串行执行调用,每次执行一个。 |
Immediate | 回调根本不会排队,而是由提交它们的线程立即执行。 有关实现立即调度模式的示例,请参阅创建复合任务队列。 |
备注
XTaskQueueCreate 使用此枚举指定任务队列的工作端口和完成端口的调度模式。
工作端口和完成端口可以使用不同的调度模式。 例如,可以针对工作端口使用线程池调度模式,以自动在系统线程队列上并行排队并执行回调,并可以针对完成端口使用手动调度模式,以在 Windows 消息循环线程中手动排队并执行回调。 有关详细信息,请参阅使用带有 Windows 消息循环的任务队列。
要求
头文件:XTaskQueue.h
支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机