程序有大量计算,让结果输出,程序就反应不过来了,如何解决呢
程序有大量计算,让结果输出,程序就反应不过来了,怎么解决呢
比如:我让单击按钮事件,输出解线性方程的结果,运行时,程序就卡在那里了,好像是反映不过来
void CCalibration::OnDdShow()
{
CString str=DD_OutPut_Curve_Equation(); //解线性方程
SetDlgItemText(IDC_SHOW_DD,str);
}
------解决方案--------------------
用线程来处理计算,线程计算完成后再通知主程序。
------解决方案--------------------
1. 开一个工作线程用来完成计算工作。
2.1 如果只是阻塞方案,可以在UI上显示当前正在计算,不允许进行后续操作。
2.2 如果是非阻塞方案,可以添加一个简单的消息队列,将后续需要进行运算的信息进行记录,
当工作线程完成运算后,通知工作线程继续工作,直到全部计算完毕
3. 优化计算方法
------解决方案--------------------
通过独立线程处理
可参考这篇文章
http://blog.****.net/xianglitian/article/details/6729851
比如:我让单击按钮事件,输出解线性方程的结果,运行时,程序就卡在那里了,好像是反映不过来
void CCalibration::OnDdShow()
{
CString str=DD_OutPut_Curve_Equation(); //解线性方程
SetDlgItemText(IDC_SHOW_DD,str);
}
------解决方案--------------------
用线程来处理计算,线程计算完成后再通知主程序。
------解决方案--------------------
1. 开一个工作线程用来完成计算工作。
2.1 如果只是阻塞方案,可以在UI上显示当前正在计算,不允许进行后续操作。
2.2 如果是非阻塞方案,可以添加一个简单的消息队列,将后续需要进行运算的信息进行记录,
当工作线程完成运算后,通知工作线程继续工作,直到全部计算完毕
3. 优化计算方法
------解决方案--------------------
通过独立线程处理
可参考这篇文章
http://blog.****.net/xianglitian/article/details/6729851