在工作线程完成MFC时禁用控制变量
Disabling control variable while worker thread is finishing MFC
我正在使用Visual Studio 2015开发一个基于对话框的MFC应用程序。基本上,我的问题是,我有一个按钮,在用户选择了必要的输入(.csv文件将被解析并放入不同的向量)后,它将启动一个工作线程。为了避免复杂情况,我决定用户在工作线程完成计算之前无法按下此按钮或输入按钮。我尝试了WaitforSingleObject选项,但在等待工作线程完成时,无法保持主线程或MFC应用程序运行。这个问题还有其他解决办法吗?我感谢你的帮助。
您的工作线程可以向UI线程返回一条完成消息。在这种情况下,您的UI线程不需要特殊的消息循环,相反,您的窗口过程会在收到该消息时重新启用按钮。
您可以使用MsgWaitForMultipleObjects
函数:https://msdn.microsoft.com/en-us/library/windows/desktop/ms684242(v=vs.85).aspx
ATL在AtlWaitWithMessageLoop中使用它(https://msdn.microsoft.com/en-us/library/26hwk2bx.aspx)。
相关文章:
- 在 c++ 中基于范围的 for 循环中使用引用作为控制变量
- 需要帮助定义循环控制变量(while loops)C++
- 代码样式:在 switch/if 语句的分支中重用控件表达式或控制变量
- 为什么 mfc 中静态文本工具中的变量未定义
- 控制通过类中的成员函数更改成员变量的能力C++
- C++不正确,不需要重新声明类成员变量 MFC 手工解决方案/项目 MS VS 2015
- 访问lambda内部循环控制变量
- C 是循环控制变量,并且在循环中相同
- 是否有任何类型特征控制成员类型(不是成员变量)
- 如何根据MFC中的列表控制选择禁用按钮
- MFC编辑控制消息处理访问文档对象
- 标准输出输出不会显示在基于 Windows MFC 对话框的应用的控制台上
- MFC-在CDIALOGEX控制中使用的CMFCTOOLTIPCTRL中更改字体
- 如何用python中的变量控制循环的增量
- MFC对话框成员变量的随机崩溃不在范围中
- 反转滑块控制顶部 MFC C++
- 我可以在 MFC 应用程序中定义全局变量的位置
- 我可以控制调试器窗口中显示的浮点数和双精度变量的位数吗?
- 按字符控制变量
- 在工作线程完成MFC时禁用控制变量