XTaskQueueDispatchMode

说明如何处理任务队列回调。

语法

typedef enum class XTaskQueueDispatchMode  : uint32_t  
{  
    Manual,  
    ThreadPool,  
    SerializedThreadPool,  
    Immediate  
} XTaskQueueDispatchMode  

常量

常量 说明
Manual 回调不会自动调度。 使用此调度模式提交给端口的回调将排队,但必须通过 XTaskQueueDispatch 手动调度。
注意:如果拥有可注入 Windows 消息的线程:
  • 请勿针对工作端口调度回调
  • 如果针对完成端口调度回调,则必须继续为该线程注入 Windows 消息

有关详细信息,请参阅创建手动任务队列
ThreadPool 使用此调度方式提交给端口的回调将排队,并自动在系统线程队列中调度。 任务队列并行执行调用,在线程池线程可用时依次从任务队列中提取要执行的调用。
有关如何创建线程池任务队列的详细信息,请参阅创建线程池任务队列
SerializedThreadPool 使用此调度方式提交给端口的回调将排队,并自动在系统线程队列中调度。 与 ThreadPool 不同,任务队列会在线程池中串行执行调用,每次执行一个。
Immediate 回调根本不会排队,而是由提交它们的线程立即执行。 有关实现立即调度模式的示例,请参阅创建复合任务队列

备注

XTaskQueueCreate 使用此枚举指定任务队列的工作端口和完成端口的调度模式。

工作端口和完成端口可以使用不同的调度模式。 例如,可以针对工作端口使用线程池调度模式,以自动在系统线程队列上并行排队并执行回调,并可以针对完成端口使用手动调度模式,以在 Windows 消息循环线程中手动排队并执行回调。 有关详细信息,请参阅使用带有 Windows 消息循环的任务队列

要求

头文件:XTaskQueue.h

支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机

另请参阅

XTaskQueue 成员
异步编程模型
异步任务队列设计