<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      使用timeGetTime函數更精準地計算時間差

      [摘要]我想每 0.005 秒做某一件工作, 所以撰寫了以下程序:Dim tm1 As SingleDotm1 = TimerWhile Timer - tm1 < 0.005 ' 等于 0....
      我想每 0.005 秒做某一件工作, 所以撰寫了以下程序:
      Dim tm1 As Single
      Do
      tm1 = Timer
      While Timer - tm1 < 0.005 ' 等于 0.005 秒
      DoEvents
      Wend
      ...做某一件工作
      Loop
      但實際上, 在 While 循環里面, Timer 函數幾乎每次都得到相同的時間,只有大約隔了 0.05秒才會得到不同的時間, 也就是說 Timer 的準確性只有 0.05 秒,但我希望進行的工作卻是每 0.005 秒一次, 該怎么辦呢?可以改用 Windows API 的 timeGetTime 函數, 此一函數會傳回 Windows 開機以來所經過的時間,時間單位是 1/1000 秒, 舉例來說, 開機經過 2 分鐘, 則傳回值等于 2*60*1000, timeGetTime 的優點是時間可以精確到 1/1000 秒, 所以可以用來解決上述的問題,細節如下:

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

      2. 程序范例:
      Dim tm1 As Long
      Do
      tm1 = timeGetTime
      While timeGetTime - tm1 < 5 ' 等于 5/1000 = 0.005 秒
      DoEvents
      Wend
      ...做某一件工作
      Loop


      日韩精品一区二区三区高清