【发布时间】:2013-08-11 11:59:42
【问题描述】:
我有一个基于 MFC 的遗留应用程序,目前我无法对其进行太多修改。
有一项功能涉及从/向 INI 文件读取/写入数据。编写时要牢记 ini 文件中的设置数量将非常少。但现在它已经变得非常庞大了。
所以在执行这个任务的时候,大概需要30分钟左右。
问题是当用户点击应用程序时,应用程序被锁定并且窗口窗口显示它没有响应对话框,询问用户是否需要等待应用程序响应或退出。
现在我可以管理时间了。但我不希望窗口显示“无响应”行为。
我认为问题在于,主线程在这个过程中很忙,并且 UI 挂起。我不确定,因为我只是在猜测。
为了处理这个问题,我创建了一个线程并在其中调用这个函数。但在这个线程函数中,我无法调用AfxGetMainWnd(); 函数,因为它返回的是NULL。
这将非常有帮助,如果有人请告诉我,如何处理这种情况(离开理想情况下不会发生这种情况)?
也欢迎任何好的建议。
我的另一个想法也是将此代码放在进度条对话框中。---- 欢迎对此进行思考。
谢谢
【问题讨论】:
标签: c++ winapi visual-c++ mfc