首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于定时器队列的C++中的事件循环

基于定时器队列的C++中的事件循环
EN

Stack Overflow用户
提问于 2011-06-06 23:40:21
回答 2查看 1.4K关注 0票数 0

我正在用C++编写一个windows DLL,我需要一些事件循环。定期检查几个事件,然后DLL在客户端应用程序中触发回调。对于不同的事件,轮询周期可能不同。

我想知道编码的最好方法是什么。定时精度必须很高,但性能是最重要的。在一个具有不同周期的Windows timer queue中拥有多个(4-5)定时器和具有最小周期的单个定时器,哪个更好?或者我应该选择一个完全不同的解决方案?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2011-06-07 00:24:38

什么样的性能是主要优先考虑的?可重复的,精确的时间是错误的.在Windows这样的通用操作系统上“非常困难”,因为有大量的驱动程序中断。有各种计时器机制可以生成非常精确的超时,但不可靠。你能容忍多大的抖动?你的间隔是在什么范围内?回调是否必须在任何特定的线程上下文中,或者是否可以触发事件?

Rgds,Martin

票数 0
EN

Stack Overflow用户

发布于 2011-06-07 00:49:40

要直接回答这个问题,您可以使用SetTimer设置一个计时器,该计时器接受一个通常注册到窗口句柄的nIDEvent。然后,该窗口将接收注册标识符为wParam的WM_TIMER消息。当你用完KillTimer时,你应该销毁计时器。在Windows NT系统上,WM_TIMER的粒度约为10-15ms。

正如其他海报所说,你可能会更好地使用一个真正的基于事件的系统。也许你可以用这个用例来编辑你的帖子,这样你就可以得到更好的答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6254489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档