我正在尝试在超时后调用函数,并且计时器应仅在一个线程中使用轮询函数在后台运行
我使用两个线程解决了问题,但我想使用一个线程完成
void *Start_Timer(void *)
{
while(1)
{
struct pollfd fds[1];
int ret,timeout=10;
fds[0].fd=-1;
fds[0].events=0;
ret=poll(fds,1,timeout);
if(ret==0)
{
callMe();
}
}
}
int main()
{
pthread_t thread;
pthread_create(&thread, NULL, &Start_Timer, NULL);
int i=0;
while(1)
{
long long int time;
int id;
struct timeval start;
cout<<"Enter timer in seconds and id \n";
cin>>time>>id;
gettimeofday(&start, NULL);
time=time*1000;
Details[i].timer=time;
Details[i].id=id;
i++;
size=i;
}
}