在單文檔界面(SDI)或多文檔界面(MDI)MFC應用程序中,我在視圖中創建了一個應用程序範圍的定時器。只要應用程序正在運行並且觸發一些定期操作,計時器就會打勾。使用基於Dialog的MFC應用程序應用寬週期性任務
如何在基於Dialog的MFC應用程序中執行相同操作?
- 我應該創建線程的定時器(SetTimer與NULL HWND)並傳遞迴調函數嗎?
- 我應該創建工作線程嗎?我對其他項目的經驗是當我嘗試從非GUI /工作線程顯示一些反饋GUI時,我需要推出自己的「委託」/命令模式和「委託調用者」/命令調用器。工作線程將發送消息(我認爲在跨線程邊界CMIIW處理消息比直接函數調用安全)到UI線程。而UI線程將成爲「委託」/命令調用者。如果沒有做到這一點,並確保窗口/對話框有正確的父母會導致bizzare行爲,如應用程序突然消失在後臺;窗口/對話框顯示在當前窗口/對話框的後面,導致當前窗口無響應/不可點擊。可能我做錯了什麼,但是在處理線程時遇到了很多問題。
是否有最佳做法呢?
我知道計時器在基於對話框工作,但我應該把它放在哪裏?如果我把它放在對話框中,當對話框被銷燬時它會被殺死。我是否應該保持1個對話框始終打開,作爲定時器的利基? – 2010-01-29 06:18:43