计时器每隔一段时间就给程序发送wm_timer消息。如果消息队列中,还有其它消息要处理,等处理到这个timer消息时,不就有误差了吗?
如果timer事件里的代码执行时间超过timer的间隔时间,那消息队列里不是塞满了timer消息?那不就是一直要执行timer事件了?
如果我对计时的要求很高,有没有什么办法提高计时的精度?

解决方案 »

  1.   

    可以使用API函数TimeSetEvent函数来实现比较精确的实现间隔执行
      

  2.   

    timeSetEvent太不稳定了,虽然精确度最高,但是VB中使用,就算使用那种鸡肋的方法勉强稳定了,也不能保证通用性。
      

  3.   

    "如果timer事件里的代码执行时间超过timer的间隔时间,那消息队列里不是塞满了timer消息?那不就是一直要执行timer事件了?"如果要处理的消息太多,太频繁,应考虑做成com组件,多开几个线程同时处理吧