有人可以指点我在Win32服务中使用计时器的最简单方法吗?
我想我可以为此目的创建一个虚拟窗口,或者让第二个线程做滴答计数,但最好的是什么?有更优雅的方式吗?
提前致谢.
您可以使用计时器队列(http://msdn.microsoft.com/en-us/library/ms686796.aspx).它们不需要HWND.
您可以使用内核等待计时器对象,而不是使用UI计时器(即使您可以使用1800-INFO先生所示的NULL窗口句柄).请参阅API文档中的CreateWaitableTimer.然后可以使用WaitForSingleObject或WaitForMultipleObjects等等这些等待,如果您的服务已经等待外部事件,这将特别有用.
如果从第一个链接不清楚,则SetWaitableTimer函数可以将完成例程(用户回调)与计时器相关联.请记住使用... WaitForMultipleObjects(等)的Ex版本,以便线程处于"可警告"状态.