目前,我正在使用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. 哪个线程做backgroundworker完成事件处理程序运行?
- 4. 等待JavaFX应用程序线程完成处理事件?
- 5. 如何在运行时添加通用事件处理程序
- 6. 添加自己的事件处理程序在其他事件处理程序
- 7. Java FX仅在事件处理程序完成时更新GUI
- 8. 如何在VB.NET中添加事件处理程序?
- 9. 如何在循环中添加事件处理程序?
- 10. 如何在Javascript中添加事件处理程序?
- 11. 如何在c#中添加事件处理程序?
- 12. 在GridView中添加事件处理程序到DropDownList - 如何?
- 13. 添加Google Analytics事件处理程序
- 14. 添加事件处理程序
- 15. 动态添加事件处理程序
- 16. JavaScript图片加载线程和事件处理程序线程
- 17. 无法在Visual Studio 2010中添加事件处理程序(mfc项目)
- 18. 在XAML中添加事件处理程序时出现XamlParseException
- 19. 在backbone.js中扩展视图时添加事件处理程序?
- 20. 完成处理程序内的完成处理程序?
- 21. 在VC++中处理事件处理程序时更改EditBox的内容mfc
- 22. C#,事件处理程序和线程
- 23. 在哪个线程中调用iOS完成处理程序块?
- 24. 添加和删除事件处理程序为多线程应用
- 25. 了JavaFx任务事件处理程序中处理该线程
- 26. io_service如何将完成事件与完成处理程序相匹配
- 27. 如何更新线程中事件处理程序的值?
- 28. 如何实现MFC CEdit的事件处理程序ON_EN_SETFOCUS?
- 29. Camunda在运行时添加事件处理程序(ExecutionListener或TaskListener)
- 30. 在运行时添加单选按钮事件处理程序
PostMessage,不发送消息。 – 2011-01-10 00:53:19