我在一个由ChildView拥有的类中有一个工作线程。 (我打算最终将它移到Doc。)当工作线程完成任务时,我希望更新所有视图。如何拨打电话告诉Doc发布UpdateAllViews()?或者有更好的方法吗?
谢谢。
由OP添加:我正在寻找一个简单的解决方案。该应用程序在单个用户的单CPU计算机上运行,不需要网络(或Internet)访问。没有什么可以导致僵局。
我想我希望工作线程发布(或发送)一条消息以使视图更新。
我读到的关于线程的所有内容似乎都比我需要的更复杂 - 而且,是的,我理解所有这些预防措施对于在多处理器,多用户,客户端 - 服务器系统等中运行的应用程序是必需的。但是没有一个适用于我的情况。
我只是坚持正确组合获取窗口句柄,发布消息并在正确的函数和类中响应消息以进行编译和运行。
答案 0 :(得分:2)
UpdateAllViews不是线程安全的,因此您需要封送对主线程的调用。 我建议您signal一个manual-reset event标记您的主题完成情况,并在WM_TIMER处理程序中标记check the event's status。
建议阅读: