windows程式如何?精準定時

來源:互聯網
上載者:User

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.