【发布时间】:2011-03-15 10:08:36
【问题描述】:
我需要在基于 I/O 完成端口 (IOCP) 的应用程序中添加计时器支持。我想避免使用特定线程来管理计时器。
在 Linux 上,您可以创建一个通过文件描述符传递到期通知的计时器(请参阅 timerfd.h 手册),因此如果您的应用程序基于 epoll,则可以将它与 epoll 一起使用。
在 Windows 上,您可以将“等待计时器”与异步过程调用 (ACP) 一起使用(请参阅 http://msdn.microsoft.com/en-us/library/ms686898(v=VS.85).aspx)
如果您有兴趣,kqueue (BSD, Mac OS) 默认支持计时器(参见 EVFILT_TIMER)。
对于 I/O 完成端口,我们必须使用支持重叠 I/O 的对象。那么,IOCP有这样的定时器吗?
最好的问候,
塞德里克
【问题讨论】:
标签: timer filehandle iocp overlapped-io