三度网教程:是一个免费提供流行视频软件教程、在线学习分享的学习平台!

运用timeGetTime函数更精准地计算时间差

时间:2024/6/3作者:未知来源:三度网教程人气:


我想每 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

关键词:  运用timeGetTime函数更精准地计算时间差





Copyright © 2012-2018 三度网教程(http://www.3du8.cn) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版