目前,我正在使用WaitForSingleObject
來等待子任務線程完成。不幸的是,這導致我的GUI鎖定。我想要做的是設置一個處理程序(在GUI線程中),它將在子任務線程完成後調用。這有其他功能嗎?如何爲線程在MFC中完成時添加事件處理程序?
2
A
回答
3
你可以做的是讓你的線程發佈自定義消息到你的窗口的最後一件事。然後使用MFC的消息映射將其作爲常規消息處理。如果您無法更改線程代碼,則可以創建一個等待您的線程的新線程,然後發送該消息。
正如你已經注意到了,它不是鎖定了GUI線程一個好主意......
編輯:發佈消息使用PostMessage的功能在評論中指出,由Hans完成。
1
也可以看看MsgWaitForMultipleObjects(或MsgWaitForMultipleObjectsEx)。 這些允許線程等待事件句柄和服務窗口消息(檢查返回值以查看導致呼叫返回的原因)。使用示例應該可以通過搜索引擎進行搜索。
http://msdn.microsoft.com/en-us/library/ms684245(VS.85).aspx
相關問題
- 1. MFC事件處理程序
- 2. 如何在WP7 VB.Net中爲WebClient添加事件處理程序?
- 3. 等待JavaFX應用程序線程完成處理事件?
- 4. 哪個線程做backgroundworker完成事件處理程序運行?
- 5. 向Alamofire添加完成處理程序
- 6. 如何在運行時添加通用事件處理程序
- 7. 如何在MFC中啓用或禁用事件處理程序?
- 8. 添加自己的事件處理程序在其他事件處理程序
- 9. Java FX僅在事件處理程序完成時更新GUI
- 10. 如何在Javascript中添加事件處理程序?
- 11. 在GridView中添加事件處理程序到DropDownList - 如何?
- 12. 如何在循環中添加事件處理程序?
- 13. 如何在c#中添加事件處理程序?
- 14. 如何在VB.NET中添加事件處理程序?
- 15. 如何確保在完成相同的事件處理程序後執行事件處理程序?
- 16. 添加事件處理程序
- 17. 動態添加事件處理程序
- 18. WPF C#添加事件處理程序
- 19. 動態添加事件處理程序
- 20. 添加Google Analytics事件處理程序
- 21. 無法在Visual Studio 2010中添加事件處理程序(mfc項目)
- 22. JavaScript圖片加載線程和事件處理程序線程
- 23. 完成處理程序內的完成處理程序?
- 24. 在backbone.js中擴展視圖時添加事件處理程序?
- 25. 在XAML中添加事件處理程序時出現XamlParseException
- 26. 在VC++中處理事件處理程序時更改EditBox的內容mfc
- 27. 在main()中爲串行端口添加事件處理程序
- 28. C#如何檢查事件處理程序是否已完成
- 29. 如何強制Canvas事件處理程序完成更新
- 30. 如何在事件處理程序鏈(Carbon)處理完自定義處理程序後傳播事件?
PostMessage,不發送消息。 – 2011-01-10 00:53:19