MFC 延时问题,是知道如何写个C++延时函数 ms级的?不要sleep() 或者Wait()。

类似于这个,但是是ms级的!voidDelaySecond(intsecond){COleDateTimestart_time=COleDateTime::GetCurr... 类似于这个,但是是ms级的!
void DelaySecond(int second){
COleDateTime start_time= COleDateTime::GetCurrentTime();
COleDateTimeSpan end_time= COleDateTime::GetCurrentTime()-start_time;
while(end_time.GetTotalSeconds()< second) //实现延时2秒
{
MSG msg;GetMessage(&msg,NULL,0,0);
TranslateMessage(&msg);
DispatchMessage(&msg);
end_time = COleDateTime::GetCurrentTime()-start_time;
}
}
展开
 我来答
0混室摸王0
推荐于2016-05-25 · 超过99用户采纳过TA的回答
知道小有建树答主
回答量:181
采纳率:0%
帮助的人:157万
展开全部
3.使用GetTickCount//获取程序运行时间  
 
long t1=GetTickCount();//程序段开始前取得系统运行时间(ms)   

参考你上面写的函数即可!

//参考这个地址
http://www.cnblogs.com/bigbigtree/archive/2011/12/02/2272066.html
追问
这个延时程序如何无限循环(或者说循环比较久),导致程序无法完全退出怎么办(程序关闭了进程还在)!
是因为这几个语句吗?
MSG msg;GetMessage(&msg,NULL,0,0);
TranslateMessage(&msg);
DispatchMessage(&msg);
删除这些语句,程序就又不执行了!
有办法使其完全退出吗
追答
你把需求说明白点。。如果你只是想实现类似sleep()函数 的功能。就while语句一直循环到 你所需条件退出循环。。。。不清楚你的需求不好说》。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ncutyuhaitao
2015-04-14 · TA获得超过1070个赞
知道小有建树答主
回答量:607
采纳率:0%
帮助的人:485万
展开全部
你可以通过获取时钟信息来进行判断啊,那个得到的是时钟数,通过频率计算得到时间,可以换算成ms级别。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式