#include <stdio.h>
#include <stdlib.h>
//声明回调函数类型
typedef void (*TIMER_CALLBACK)(int );
//计时周期
static int s_wait_time=0;
//初始化一个回调函数
static TIMER_CALLBACK s_call_back;
//线程号
pthread_t test_pt=0;
static void print_times(int param)
{
printf("I am the %d times \n",param);
return;
}
//休眠函数
static void sleep_ms(unsigned int msecs)
{
struct timeval tval;
tval.tv_sec = msecs / 1000;
tval.tv_usec = (msecs * 1000) % 1000000;
select(0, NULL, NULL, NULL, &tval);
}
//计时器线程
static void* thread_runner(int param)
{
while(1){
sleep_ms(s_wait_time);
if(s_call_back!=NULL)
{
s_call_back(param);
}
param++;
}
return NULL;
}
//计时器函数
//param1 time_million_second 计时周期
//param2 callback 回调函数,具体工作的内容
int starttimer(int time_million_second,TIMER_CALLBACK callback)
{
s_wait_time=time_million_second;
s_call_back=cal
一个简单的C语言计时器写法
最新推荐文章于 2024-09-07 01:21:34 发布