萬盛學電腦網

 萬盛學電腦網 >> 電腦基本常識 >> windows程序如何實現精准定時

windows程序如何實現精准定時

   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的 :)

copyright © 萬盛學電腦網 all rights reserved