题
我想每两个小时后调用一次商务舱的功能。如果不使用 while 循环,我无法在 C/C++ 中实现相同的方法。我的问题是我不能使用 while(1) 因为这不会返回控制以进一步执行。
在这方面的任何指示都会有帮助......:)
thnaks
解决方案
在普通的C,我已使用alarm(2)
或setitimer(2)
功能考虑。可替换地,产生一个线程并执行从那里等待。
如果你决定在脑海报警或setitimer路线,记住,你需要编写信号处理程序,可能需要注意的调度循环,现在是时候做定期保养调用,因为它被认为是不好的做法,从信号处理程序中做了不少的东西。
其他提示
Boost.Asio 提供 定时器.
有关的一般的解决方案,可以启动一个线程,其在2小时后发送一些消息给主线程。
在Linux,你可以使用这样的:
http://linux.die.net/man/3/alarm
和然后处理该信号SIGALRM
不隶属于 StackOverflow