如何在C / C ++中实现计时器

时间:2010-11-01 07:22:00

标签: c++ c timer ctime

我想每隔2小时调用一次商务舱的功能。 我没有任何方法在不使用while循环的情况下在C / C ++中实现相同的功能。 我的问题是我不能使用while(1),因为这不会重新调回控件以进一步执行。

这方面的任何指针都是有用的.... :)

thnaks

3 个答案:

答案 0 :(得分:2)

Boost.Asio提供Timers

答案 1 :(得分:0)

对于一般解决方案,您可以启动一个线程,该线程在2小时后向主线程发送一些消息。

对于linux,你可以使用它:

http://linux.die.net/man/3/alarm

然后处理SIGALRM信号

答案 2 :(得分:0)

在简单C中,我会考虑使用alarm(2)setitimer(2)函数。或者,生成一个线程并从那里做等待。

如果您决定使用警报或设置路由,请记住您需要编写信号处理程序,并且可能需要一个调度循环来指示是时候进行定期维护调用,因为它被认为是不好的做法。从信号处理程序中做很多事情。