vc中怎么让计算机等一段时间再执行下个操作。追加20分!

来源:百度知道 编辑:UC知道 时间:2024/09/24 21:27:24
两个语句a和b是连着的,我需要执行完a等一段时间再执行b(比如1秒),怎么才能做到呢?我想过用while循环,循环体中计算clock是否过了1秒,这样比较麻烦,谁知道有更好的办法没有?

for(;;)
{
a;
Sleep(1000);
b;
}

如果需要非常准确的时间,可用忙等待:
for(;;)
{
a;
long tickBefor=GetTickCount();
for(;;)
{
long tickNow=GetTickCount();
if(tickNow-tickBefor)>1000)break;
//小心 GetTickCount()可能归零
}
b;
}

或者用状态机。。

有个函数
Sleep(...等待时间,单位是毫秒)

MS VC++可以用MFC的Sleep函数,参数是毫秒。

可以写自己的delay函数:
#include <time.h> // 头文件
time_t start_time, cur_time; // 变量声明
time(&start_time);
do { time(&cur_time);
} while((cur_time - start_time) < 3);
滞后3 秒

函数调用:
#include <time.h>
void delay(int sec)
{
time_t start_time, cur_time; // 变量声明
time(&start_time);
do { time(&cur_time);
} while((cur_time - start_time) < sec );
}

我答过这个问题,在这里:
http://zhidao.baidu.com/question/