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