程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 利用timeGetTime函數更精准地計算差

利用timeGetTime函數更精准地計算差

編輯:VB綜合教程
我想每0.005秒做某一件工作,所以撰寫了以下程序:
  Dimtm1AsSingle
  Do
  tm1=Timer
  WhileTimer-tm1<0.005'等於0.005秒
  DoEvents
  Wend
  ...做某一件工作
  Loop

但實際上,在While循環裡面,Timer函數幾乎每次都得到相同的時間,只有大約隔了0.05秒才會得到不同的時間,也就是說Timer的准確性只有0.05秒,但我希望進行的工作卻是每0.005秒一次,該怎麼辦呢?可以改用WindowsAPI的timeGetTime函數,此一函數會傳回Windows開機以來所經過的時間,時間單位是1/1000秒,舉例來說,開機經過2分鐘,則傳回值等於2*60*1000,timeGetTime的優點是時間可以精確到1/1000秒,所以可以用來解決上述的問題,細節如下:

1.API的聲明:
  PrivateDeclareFunctiontimeGetTimeLib"winmm.dll"Alias"timeGetTime"
  ()AsLong
  注:如果以上的聲明放在「一般模塊」底下,應將Declare之前的Private保
  留字去掉。

2.程序范例:
  Dimtm1AsLong
  Do
  tm1=timeGetTime
  WhiletimeGetTime-tm1<5'等於5/1000=0.005秒
  DoEvents
  Wend
  ...做某一件工作
  Loop

->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved