XTaskQueueDispatch
處理工作佇列中指定連接埠的一個項目。語法
參數
queue _In_類型:XTaskQueueHandle 要在其上分派工作的佇列。 port _In_
類型:XTaskQueuePort 要分派的連接埠。 timeoutInMs _In_
類型:uint32_t 傳回 false 之前等候工作抵達的毫秒數。您可以傳遞 INFINITE 以無限期等候。
傳回值
類型:bool 如果此函式分派了呼叫,則傳回 true,否則傳回 false。如果佇列已終止,即使傳遞 INFINITE 作為逾時,此函式也會傳回 false。備註
您可以傳遞逾時,這會使 XTaskQueueDispatch 等候佇列中有項目抵達。 如果工作佇列連接埠是以 XTaskQueueDispatchMode::ThreadPool、XTaskQueueDispatchMode::SerializedThreadPool 或 XTaskQueueDispatchMode::Immediate 分派模式建立,就會自動分派回呼。對於手動分派連接埠,您必須呼叫 XTaskQueueDispatch。任何分派模式都可以呼叫 XTaskQueueDispatch,但請注意,呼叫一律會在呼叫 XTaskQueueDispatch 的執行緒上分派。
將項目加入佇列必須是無鎖定且無等候的,以符合上游程式碼的效能需求。下列 API 為無鎖定:
- XTaskQueueSubmitCallback
- XTaskQueueSubmitDelayedCallback
- XTaskQueueDispatch,前提是 timeoutInMs 傳遞 0

XTaskQueueDispatch 在處理工作連接埠中的項目時所花費的時間不固定,取決於正在執行的工作。 在某些情況下,呼叫端執行緒可能會封鎖,以等候其他系統工作完成。 下列範例示範如何使用 XTaskQueueDispatch 函式來處理工作佇列中的項目。
SubmitCallback 是在 XTaskQueueSubmitCallback 函式的程式碼範例中定義的協助程式函式。
需求
標頭: XTaskQueue.h 程式庫: xgameruntime.lib 支援的平台: Windows、XBOX One 系列主機和 XBOX Series 主機概念文件
另請參閱
XTaskQueue 成員非同步程式設計模型
非同步工作佇列設計
