windows程序如何实现精准定时

2015/1/22 来源:www.arpun.com 作者:小白

 1. 精度不高

  windows98大概是55ms, Windows NT大概是10ms。

  2. WM_TIMER消息可能无法及时处理

  WM_TIMER消息和其他消息一样, 存放在正常的消息队列之中。 如果程序处理其他消息, 用了太长的时间, 就耽误了WM_TIMER消息的处理, 从效果上看就相当于定时器来晚了。

  3. WM_TIMER消息可能会有遗漏

  这样一来, 如果一个windows程序在时间方面有苛刻的要求(例如, 测试仪之类的软件), 怎么办呢。

  “小兵以太网测试仪”采用的是如下的笨方法。

  这种方法非常简单, 但也确实有效。 下面是此方法的伪代码。

  interval=x; //所需的时间间隔

  next_do_work_time=当前时间;

  while (!need_stop)

  {

  do

  {

  cur_time=当前时间;

  } while (!need_stop && cur_time

  if (need_stop) break;

  DO_WORK();

  next_do_work_time+=interval;

  }

  需要说明的是, 这种方法是很消耗CPU的 :)360抢票王官方下载 xv视频格式转换器 飞车辅助 qq农场牧场餐厅三合一 wpe下载

网友评论
评论(...
全部评论