【MFC】操作系统如何判断一个程序没有响应?
如题。
操作系统根据什么标准知道一个程序没有响应的?为什么命令行的程序就不会这样?
我现在维护一个代码量很大的桌面程序,我现在需要解决加载数据过程中,程序会进入“无响应”状态的问题。
这个程序有一个子窗口,这个子窗口加载的数据需要很长时间才能完成。如果不开这个子窗口打开文件很快,打开了之后,组织这个子窗口需要的数据需要很长时间。这短时间内,虽然子窗口跟主窗口的功能没有任何交集,但是还是会导致主窗口也变成未响应。这个怎么能改善?
[解决办法]
加载数据过程中,程序进入“无响应”状态是正常的。
如果非要避免出现“无响应”状态,在耗时较长的加载数据过程中添加消息循环:
if (GetMessage(&msg,NULL,0,0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}