C++ 可移植库中的timer_创建和TimerQueueTimer功能(如boost)

C++ 可移植库中的timer_创建和TimerQueueTimer功能(如boost),c++,boost,timer,portability,C++,Boost,Timer,Portability,我编写了一个在Linux上运行的程序,它使用sigevent和timer_create,以便以指定的频率对回调函数进行逐次调用。现在,我希望这个程序是可移植的(Windows和Linux),所以要做到这一点还有很长的路要走,就是使用#ifdef并使用与Windows等效的功能 好吧,windows上的等价物是TimerQueueTimer 我知道这是一个OS服务,但是就像线程一样,它可以通过像Boost C++这样的库来移植。 问题是:你知道Boost C++库中是否有这样的事情,或者PoCO或

我编写了一个在Linux上运行的程序,它使用sigevent和timer_create,以便以指定的频率对回调函数进行逐次调用。现在,我希望这个程序是可移植的(Windows和Linux),所以要做到这一点还有很长的路要走,就是使用#ifdef并使用与Windows等效的功能

好吧,windows上的等价物是TimerQueueTimer

<>我知道这是一个OS服务,但是就像线程一样,它可以通过像Boost C++这样的库来移植。 问题是:你知道Boost C++库中是否有这样的事情,或者PoCO或其他可尊敬的库中有这样的事情? 如果它不存在,那么有什么东西可以阻止这种东西出现在便携式图书馆中

仅供参考,boost::asio::deadline_timer不是我想要的,它必须是一个定期调用回调函数的服务,其精度与timer_create和TimerQueueTimer相同。

有一个运行TimerTask的多线程计时器类。基本上,您可以使用计时器过期时要执行的操作覆盖TimerTask的run()方法。可以将多个任务添加到计时器对象,该对象生成一个线程,以顺序运行所有挂起的任务。任务可以是一次性的,也可以是间隔可重复的

不确定它是否满足您的所有需求,但值得一看。

有一个运行TimerTask的多线程计时器类。基本上,您可以使用计时器过期时要执行的操作覆盖TimerTask的run()方法。可以将多个任务添加到计时器对象,该对象生成一个线程,以顺序运行所有挂起的任务。任务可以是一次性的,也可以是间隔可重复的


不确定它是否满足您的所有需求,但值得一看。

我强烈推荐ACE(自适应通信环境)。具体研究ACE_Reactor类和ACE_Reactor::schedule_timer(…)方法


我强烈推荐ACE(自适应通信环境)。具体研究ACE_Reactor类和ACE_Reactor::schedule_timer(…)方法


起初我认为libev可能会解决您的问题,但后来我意识到我从未听说过它在Windows上运行,所以经过一番研究后我发现:根据他们的说法,Windows事件系统与POSIX太不兼容了……您需要使用便携库来实现这一点。再看看
boost::asio
,它当然可以满足你的需要。起初我以为libev可以解决你的问题,但后来我意识到我从未听说过它在Windows上运行,所以经过一番研究后,我发现:嗯,根据他们的说法,Windows事件系统与POSIX太不兼容了…您需要使用一个可移植的库。再看看
boost::asio
,它当然可以满足您的需要。