RtwqAllocateSerialWorkQueue 函式 (rtworkq.h)
在保證串行化工作專案的另一個工作佇列之上建立虛擬工作佇列。 序列工作佇列會包裝現有的多線程工作佇列。 序列工作佇列會強制執行先進先出 (FIFO) 執行順序。
語法
HRESULT RtwqAllocateSerialWorkQueue(
[in] DWORD workQueueIdIn,
[out] DWORD *workQueueIdOut
);
參數
[in] workQueueIdIn
現有工作佇列的標識碼。 這必須是多線程佇列或其他序列工作佇列。 您可以使用下列任一項:
- 默認工作佇列 (RTWQ_STANDARD_WORKQUEUE) 。 請參閱 RTWQ_WORKQUEUE_TYPE。
- 平臺多線程佇列 (RTWQ_MULTITHREADED_WORKQUEUE) 。 請參閱 RTWQ_WORKQUEUE_TYPE。
- RtwqLockSharedWorkQueue 函式所傳回的多線程佇列。
- RtwqAllocateSerialWorkQueue 函式所建立的序列佇列。
[out] workQueueIdOut
接收新序列工作佇列的標識碼。 將工作專案排入佇列時,請使用此標識碼。
傳回值
此函式可以傳回下列其中一個值。
傳回碼 | 描述 |
---|---|
|
此函數已成功。 |
|
應用程式超過工作佇列的數目上限。 |
|
應用程式未呼叫 RtwqStartup,或應用程式已呼叫 RtwqShutdown。 |
備註
當您使用工作佇列完成時,請呼叫 RtwqUnlockWorkQueue。
多線程佇列會使用線程集區,以減少管線中的線程總數。 不過,它們不會串行化工作專案。 序列工作佇列可讓應用程式取得線程集區的優點,而不需要執行自己的工作專案的手動串行化。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8.1 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2012 R2 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | rtworkq.h |
程式庫 | Rtworkq.lib |
Dll | RTWorkQ.dll |