高分求教如何编写vc的延时函数!!

endless 2002-07-23 05:05:26
我想做一个延时函数,该延时函数使用方法如下:

语句1;
语句2;
延时函数;
语句3;
语句4;

该延时函数将使程序原地等待指定长度的时间,时间到时才能执行下一步。
我开始是用sleep函数,但sleep函数将使进程被锁住,无法响应消息,我想编一个
延时函数,在该函数执行期间,仍然可响应消息。
请问如何实现该函数。(注意不要使用settimer,ontimer)


...全文
549 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
endless 2002-07-24
  • 打赏
  • 举报
回复
感谢hthuguangming的回答,你提供的方法我已经试过,是可行的。
但是唯一不足的是该函数占用过多cpu时间,请教如何降低cpu的利用率,
是在循环中下sleep语句吗。如果用sleep语句,是否会影响线程响应各种
消息。
wgc 2002-07-23
  • 打赏
  • 举报
回复
可以采用空循环
anni 2002-07-23
  • 打赏
  • 举报
回复
把这些东东放到线程函数......
语句1;
语句2;
延时函数;// 这里用Sleep()就ok//注意大写
语句3;
语句4;
anni 2002-07-23
  • 打赏
  • 举报
回复
把这些东东放到线程函数......
语句1;
语句2;
延时函数;// 这里用sleep()就ok
语句3;
语句4;
TombyWu 2002-07-23
  • 打赏
  • 举报
回复
建议使用线程
sim 2002-07-23
  • 打赏
  • 举报
回复
建议使用线程
nbgyf 2002-07-23
  • 打赏
  • 举报
回复
在已解决的栏目中有一篇《精确定时》的文章,瞅瞅
hthuguangming 2002-07-23
  • 打赏
  • 举报
回复
void CMainDlg::delay_time(DWORD msecond)
{
DWORD start,nowTime;
start=timeGetTime();
do
{
MSG msg;

if (::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE))
{
/* if (msg.message ==WM_QUIT) return;
::TranslateMessage(&msg);
::DispatchMessage(&msg);*/

if (!AfxGetApp()->PumpMessage())
{
::PostQuitMessage(0);
return;
}
nowTime=timeGetTime();
}
} while ((nowTime-start)<msecond);
}
explorer007 2002-07-23
  • 打赏
  • 举报
回复
把这些东东放到线程函数......
语句1;
语句2;
延时函数;// 这里用sleep()就ok
语句3;
语句4;
yspei 2002-07-23
  • 打赏
  • 举报
回复
sleep(time_number)单位毫秒
BinaryTreeEx 2002-07-23
  • 打赏
  • 举报
回复
你要延时的那个函数用线程实现。
xiaodog 2002-07-23
  • 打赏
  • 举报
回复
WaitSingleObject
  • 打赏
  • 举报
回复
在windows系统下,不可能实现精确的延时,因为它不是实时操作系统。看看这个可以么!!!
void Wait(DWORD time)
{
DWORD start;
DWORD time_i=0;
start=GetTickCount();
while(time_i<=time)
{
time_i=GetTickCount()-start;
}

}
BinaryTreeEx 2002-07-23
  • 打赏
  • 举报
回复
你要延时的那个函数用线程实现。
romanticist 2002-07-23
  • 打赏
  • 举报
回复
wait()
dycdyc123 2002-07-23
  • 打赏
  • 举报
回复
延时函数???

不可能吧!

用一个函数来实现就会大量的占用CPU时间!

Sleep()函数可以的!


还有可以用线程试试??(可以调节时间长短)

ok!

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧