【发布时间】:2012-02-11 22:47:20
【问题描述】:
我编写了一个在 Linux 上运行并使用 sigevent 和 timer_create 的程序,以便以指定的频率定期调用回调函数。现在,我希望程序是可移植的(Windows 和 Linux),所以要做到这一点很长的路要走是使用 #ifdefs 并使用 Windows 等效功能。
AFAIK,Windows 上的等价物是 TimerQueueTimer。
我知道这是一个操作系统服务,但就像线程一样,它可以通过像 Boost C++ 这样的库进行移植。
问题是:你知道Boost C++库中是否有这样的东西,或者可能在POCO或其他受人尊敬的库中吗?
如果它不存在,那么有什么东西可以阻止可移植库中存在这样的东西吗?
仅供参考,boost::asio::deadline_timer 不是我要找的,它必须是定期调用与 timer_create 和 TimerQueueTimer 精度相同的回调函数的服务。
【问题讨论】:
-
起初我以为 libev 可能会解决你的问题,但后来我意识到我从来没有听说过它在 Windows 上运行,所以经过一些研究后我发现了这个:doc.dvgu.ru/devel/… 嗯,据他们说,Windows事件系统与 POSIX 差异太大,无法兼容...
-
您需要为此使用可移植库。再看看
boost::asio,它当然可以做你需要的。
标签: c++ boost timer portability