我正在使用Visual Studio 2015开发基于对话框的MFC应用程序。基本上我的问题是我有一个按钮,在用户选择了必要的输入后会启动一个工作线程(.csv文件将被解析和放入不同的载体)。为了避免复杂化,我决定用户将无法按下此按钮或输入按钮,直到工作线程完成计算完成为止。我尝试了WaitforSingleObject选项,但是在等待工作线程完成时,无法保持主线程或MFC应用程序的运行。还有其他解决方法可以解决这个问题吗?我感谢任何帮助。
答案 0 :(得分:4)
您的工作线程可以将完成消息发回给您的UI线程。在这种情况下,您的UI线程不需要特殊的消息循环,而是您的窗口过程会在收到该消息时重新启用按钮。
答案 1 :(得分:-2)
您可以使用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)中使用它。