简单实现一个可以计时的函数
我们知道c++只提供了一个头文件#include <ctime>,并没有提供定时器功能函数,所以需要自己编写一个定时器功能的函数
定义一个setTimer函数:void settimer(unsigned int id, int msec, BACKCALLFUNC backcallfunc);
参数:id(定时器编号) msec(毫秒量) backcallfunc(回调函数)
#include <iostream>
#include <ctime>
typedef void(*BACKCALLFUNC)( double tag);
void setTimer(unsigned int id, int msec, BACKCALLFUNC backcallfunc){
if(msec < 0){
return;
}
//初始化时间
clock_t start, finish;
start = clock();
double totaltime = 0;
while(1)
{
finish = clock();
totaltime = ((double)(finish - start))/CLOCKS_PER_SEC;//用秒计时CLOCKS_PER_SEC
backcallfunc( totaltime);//调用回调函数
//退出条件
if(totaltime > msec)
{
break;
}
}
}
void backcallfunc( double arg)//回调函数
{
std::cout << "the timer:"<< arg <<std::endl;
}
int main() {
setTimer(1,10,backcallfunc);//定时10秒
return 0;
}