我擁有一個ChildView擁有一個工作線程。 (我打算最終將其移至Doc)。當工作線程完成任務時,我希望所有視圖都得到更新。我如何打電話告訴Doc發行UpdateAllViews()?還是有更好的方法?工作線程內的UpdateAllViews()?
謝謝。
由OP補充:我要尋找一個簡單的解決方案。該應用程序運行在單個用戶,單CPU電腦上,不需要網絡(或Internet)訪問。沒有什麼會導致僵局。
我想我想讓工作線程發佈(或發送)一條消息,以使視圖更新。
我所讀到的有關線程的一切似乎都比我需要的複雜得多 - 而且,我明白所有這些預防措施對於在多處理器,多用戶,客戶端 - 服務器系統等中運行的應用程序都是必需的。那些適用於我的情況。
我只是得到正確的組合獲取窗口句柄,張貼消息和響應正確的函數和類中的消息編譯和功能。
@Harvey:多線程不侷限於多處理器/核心,多用戶或客戶端 - 服務器系統,你可以爲陷入死鎖甚至只要有多個線程和處理線程間通信時,最簡單的情況就是如此。但是你想發佈消息到GUI更新的主線程是好的(在工作線程中使用PostMessage,而不是SendMessage!)。這裏是另一個有用的答案,與你非常密切相關的問題:http://stackoverflow.com/questions/391125/how-to-change-pane-text-of-status-bar-from-a-thread-in- mfc – Slauma 2010-04-08 00:11:09