求延时功能的函数??

milkslzz 2004-12-12 03:51:39
我要的延时程序是这样的:
求一个延时功能的函数
比如一个函数
function()
{
延时2秒函数();
ShowMessage();
}
要延时3秒才运行 ShowMessage();函数的


不能用sleep(1000)
因为那个是使整个程序延迟一秒的函数

要写具体点,我菜,谢谢
...全文
217 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
fidt982 2005-02-04
  • 打赏
  • 举报
回复
void Delay(DWORD MSecs)
{
DWORD BeginTime;
BeginTime = GetTickCount();
do
{
Application->ProcessMessages();
}while(GetTickCount() - BeginTime < MSecs);
}
//------------------------------------------------
不推荐这种办法,我刚才试了一下,发现在这样很占CPU资源,本人电脑CPU是P42.8G的,平时使用率大约只有1%左右,,但运行这个程序之后,CPU使用率达到了50%多
aaa185 2005-02-04
  • 打赏
  • 举报
回复
#include"windows.h"


Sleep(1000);
忘记单位了,好象是毫秒,1000就是1秒了,自己试试.
SharpKing515 2005-02-03
  • 打赏
  • 举报
回复
::sleep(XXXXXXXXXXXXX)
fidt982 2005-02-03
  • 打赏
  • 举报
回复
用线程,WAITFOR
空中猎手 2005-02-03
  • 打赏
  • 举报
回复
晕~~~一年前的贴子~~~
空中猎手 2005-02-03
  • 打赏
  • 举报
回复
void Delay(DWORD MSecs)
{
DWORD BeginTime;
BeginTime = GetTickCount();
do
{
Application->ProcessMessages();
}while(GetTickCount() - BeginTime < MSecs);
}

或使用多媒体定时器
web2003 2005-02-03
  • 打赏
  • 举报
回复
Sleep(微秒)
jinjazz 2005-02-03
  • 打赏
  • 举报
回复
api函数sleep
wilsonloveada 2005-02-03
  • 打赏
  • 举报
回复
这个问题,我也一直在寻找,用TTimer吧,虽然不易管理,但也只能这样了!
ccc0808xx 2004-12-13
  • 打赏
  • 举报
回复
另起一个线程,在另外一个线程里sleep ,这样就不会阻塞整个应用程序了。
或者,用 TTimer 也可以,但是,TTimer 多了不利于管理。
chiengod 2004-12-12
  • 打赏
  • 举报
回复
用for(;;)循环....
for(long i=0;i<10000000;i++)
{
.
.
.
Application->ProcessMessages();
.
.
.
}

milkslzz 2004-12-12
  • 打赏
  • 举报
回复
55555555
不行呀,我做的是一个泡泡堂的游戏
延时后加载图片就闪烁?? 然后事件好像停止了似的

请问还有别的函数吗?
milkslzz 2004-12-12
  • 打赏
  • 举报
回复
谢谢,我看看
chiengod 2004-12-12
  • 打赏
  • 举报
回复
#include "time.h"
void __fastcall TForm1::MyDelay(int secs)
{
time_t first, second;
first = time(NULL);
for(;;)
{
Application->ProcessMessages();
second = time(NULL);
if( difftime(second,first) > secs )
break;
}
}

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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