2016-09-20 22 views
0

有沒有辦法在Windows主循環中安排要執行的任務。我不想創建Windows並向其發送事件。如何用C++執行Windows主循環中的任務

隨着libdispatch我可以做到這一點:

dispatch_async_f(dispatch_get_main_queue(), ...) 

還是有與程序的主循環關聯的Windows線程池中的線程?

背景: 目前我正在開發CSP(通信順序處理)庫,大部分時間任務都可以由線程池執行。但有時需要在主循環中執行任務。如果Windows下的應用程序是Qt應用程序,我已經有了一個解決方案。但對於Windows下的非Qt應用程序,我希望有一個解決方案。

+0

我不是Windows專家,但不是GUI模式應用程序綁定到窗口的所有線程?我認爲這是他們與控制檯模式應用程序的不同之處。所以你肯定有一個窗戶? –

+0

真的不清楚你在問什麼。你想鉤入GetMessage循環嗎? Windows應用程序默認爲單線程和基於事件的。 – rustyx

+0

你能更具體一點嗎?爲什麼不能使用CreateThread()調用創建一個新線程並在其中執行「任務」? –

回答

0

在Windows上,每個消息循環都與單個線程關聯。如果這是你要求的,你可以爲每個應用程序有多個消息循環。