岁月流冰的技术博客--笨瑜

No prepare is prepare to lose~~~~~~

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  15 随笔 :: 0 文章 :: 8 评论 :: 0 Trackbacks
定时器为windows开发者提供了一种周期性处理某种事物的方法,但是timer的使用也有它自己的局限之处。

如定时器消息并不是异步的,WM_TIMER消息放在正常的消息队列之中,和其他消息排列在一起,一次,如果设置间隔时间为1秒,并不能保证程序每1000ms就能收到一个WM_TIMER消息。如果其他事件的处理时间超过1m,在此期间,程序是收不到任何WM_TIMER消息的。而事实上,windows对WM_TIMER消息到处理非常类似于对WM_PAINT消息的处理,这两个消息都是低优先级的,只有在没有其他消息的时候才会接受它们。
另外一点就是WM_TIMER消息在消息队列中只有1个,如果持续向消息队列放入WM_TIMER消息,消息处理机制将会把多余的WM_TIMER消息合成一个消息,这种情况下,应用程序将不能确定遗漏的WM_TIMER消息个数。

因此,在对时间处理精度要求较高的场合,请慎用定时器。

posted on 2008-05-15 16:18 岁月流冰 阅读(242) 评论(0)  编辑 收藏 引用 所属分类: C\C++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理