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;
}
} 展开
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;
}
} 展开
2个回答
展开全部
3.使用GetTickCount//获取程序运行时间
long t1=GetTickCount();//程序段开始前取得系统运行时间(ms)
参考你上面写的函数即可!
//参考这个地址
http://www.cnblogs.com/bigbigtree/archive/2011/12/02/2272066.html
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语句一直循环到 你所需条件退出循环。。。。不清楚你的需求不好说》。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询