主要問題:
QueueUserWorkItem 和 TrySubmitThreadpoolCallback 之間有什么區別,因為它們都將作業項排隊到執行緒池中
TrySubmitThreadpoolCallback
該函式將一個作業項添加到執行緒池的佇列中(通過呼叫 PostQueuedCompletionStatus),如果成功則回傳 TRUE;如果不成功則回傳 FALSE。
在某些情況下,例如記憶體不足或配額限制,對 TrySubmitThreadpoolCallback 的呼叫可能會失敗。每次呼叫 TrySubmitThreadpoolCallback 時,都會在內部為您分配一個作業項。
參考:https ://www.amazon.com.br/Windows-Via-C-Jeffrey-Richter/dp/0735663777
佇列用戶作業項
將要執行的方法排隊,當執行緒處于活動狀態時該方法執行。
參考:https ://www.macoratti.net/09/06/vb_patp.htm
據我了解,這兩個功能都做同樣的事情,區別是與兼容性有關還是與這些方面有關?
如果不是,兩者有什么區別?
另外,如果答案是否定的,我希望盡可能詳細說明每個人的特點。
等待 !
如果我的問題不完整,或者格式不正確,請發表評論,以便我進行調整,提前謝謝你。
盧卡斯 P。
uj5u.com熱心網友回復:
QueueUserWorkItem來自舊的執行緒池 API。較新的函式允許您初始化回呼的環境(通過InitializeThreadpoolEnvironment),從而使您可以更好地控制執行回呼的環境。根據我的經驗,當 MS 開始呼叫某些“遺留”并且我有選擇時,我發現使用非“遺留”的 API 通常會更好
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/512755.html
標籤:C 温纳皮线程池iocp
