2

我在一个属于 ChildView 的类中有一个工作线程。(我打算最终将其移至 Doc。)当工作线程完成任务时,我希望更新所有视图。我怎样才能打电话告诉 Doc 发出 UpdateAllViews()?还是有更好的方法?

谢谢你。


由 OP 添加:我正在寻找一个简单的解决方案。该应用程序在单用户、单 CPU 计算机上运行,​​不需要网络(或 Internet)访问。没有什么会导致僵局。

我想我想让工作线程发布(或发送)一条消息以更新视图。

我读到的关于线程的一切似乎都比我需要的要复杂得多——而且,是的,我明白所有这些预防措施对于在多处理器、多用户、客户端-服务器系统等中运行的应用程序都是必要的。但这些都不适用于我的情况。

我只是坚持获取窗口句柄、发布消息和在正确的函数和类中响应消息的正确组合,以便完全编译和运行。

4

1 回答 1

2

UpdateAllViews 不是线程安全的,因此您需要将调用编组到主线程。我建议你发出一个手动重置事件来标记你的线程的完成并在 WM_TIMER 处理程序中检查事件的状态

建议阅读:

于 2010-04-03T20:50:26.833 回答