zhangying
技术员
帖子
40
精华
0
无忧币 240
积分 230
阅读权限 30
|
发表于:2007-8-23 09:29
标题:消息循环重载
<上一帖 |
下一帖>
当应用程序进行复杂计算或占用很多系统资源的操作时,用户点击程序界面按钮时无法响应,有两种解决方法:计算线程,消息循环重载技术,即在应用程序中处理Windows消息循环。这样既可以在主线程中进行复杂计算以满足实时计算要求,又能即使响应用户输入,随时中止计算!
举例如下:
while(!m_bStop && iStep 二次消息循环函数
}
void DoEvents()
{
MSG msg;
if (: eekMessage(&msg,NULL,0,0,PM_REMOVE)) { //从Windows消息队列中取出消息
if (msg.message== WM_QUIT)//如果消息为退出,发送退出消息
{
: ostQuitMessage(-1);
}
if(!AfxGetApp()-> reTranslateMessage(&msg))//如果无法预处理消息
{
::TranslateMessage(&msg);//转换消息
: ispatchMessage(&msg);//发送消息
}
}
AfxGetApp()->OnIdle(0);AfxGetApp()->OnIdle(1);//消息队列为空时闲置一段时间
}
[ 本帖最后由 zhangying 于 2007-8-23 10:11 编辑 ]
|
 网络工程师到底该不该去考CCIE认证? |
|