Céd*_*ics 5 timer filehandle iocp overlapped-io
我需要在基于I/O完成端口(IOCP)的应用程序中添加定时器支持.我想避免使用特定的线程来管理计时器.
在Linux上,您可以创建一个通过文件描述符提供过期通知的计时器(请参阅timerfd.h man),因此如果您的应用程序基于epoll,那么将它用于epoll非常棒.
在Windows上,您可以使用"waitable timers"和异步过程调用(ACP)(请参阅http://msdn.microsoft.com/en-us/library/ms686898(v=VS.85).aspx)
如果您有兴趣,kqueue(BSD,Mac OS)默认支持计时器(请参阅EVFILT_TIMER).
使用I/O完成端口,我们必须使用支持重叠I/O的objets.那么,IOCP有这样的计时器吗?
最好的祝福,
Cédrics
据我所知,没有定时器在过期时生成IOCP完成.
您可以尝试Windows计时器队列; CreateTimerQueueTimer.
最后我写我自己的定时器队列,其确实使用一个额外的线程来运行计时器,所以它可能不适合您:请参见这里进行了一系列的,我实现队列TDD和完整的单元测试文章.我在执行了相同的接口更高的性能TimerWheel的过程中,却再次将使用外螺纹管理计时器.
| 归档时间: |
|
| 查看次数: |
2314 次 |
| 最近记录: |