WEB开发网
开发学院WEB开发综合 利用timeGetTime函数更精准地计算差 阅读

利用timeGetTime函数更精准地计算差

 2006-02-27 11:53:46 来源:WEB开发网   
核心提示:我想每0.005秒做某一件工作,所以撰写了以下程序:Dimtm1AsSingleDotm1=TimerWhileTimer-tm1<0.005'等于0.005秒DoEventsWend...做某一件工作Loop但实际上,利用timeGetTime函数更精准地计算差,在While循环里面,Timer函数几乎
我想每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

->

Tags:利用 timeGetTime 函数

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接