16,473
社区成员
发帖
与我相关
我的任务
分享
while(bIsOK) //bIsOK用于控制循环退出
{
//设定循环时间间隔为15秒
int nInterval = 15
//开始时间,用于计算延时
COleDateTime tStart = COleDateTime::GetCurrentTime();
//开始读数据
ReadData();
//计算耗时
COleDateTimeSpan tsSecond = COleDateTime::GetCurrentTime() - tStart;
int nSeconds = tsSecond.GetTotalSeconds();
//开始延时。只要从读数据开始到现在未达到15秒就延时,直到达到15秒再退出延时,
while(bIsOK && nSeconds < nInterval)
{
//计算剩余的延迟时间
tsSecond = COleDateTime::GetCurrentTime() - tStart;
nSeconds = tsSecond.GetTotalSeconds();
//每2秒进行一次消息循环,否则窗口无法响应用户操作。
if(nSeconds%2 == 0 && ::GetMessage(&msg,NULL,0,0))
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
}
}