VB延迟代码

实际上用Sleep来延迟的话会导致程序无法响应,如果使用For+Sleep+DoEvents的组合会导致巨大的误差

于是便有了以下方法:GetTickCount+Do…Loop+DoEvents

Private Declare Function GetTickCount Lib "kernel32" () As Long  
Private Sub Delay(ByVal ms As Long)  
Dim nowtime As Long  
nowtime = GetTickCount  
Do  
DoEvents  
Loop Until (GetTickCount - nowtime) > ms  
End Sub  

调用方法:

Delay 1000  

误差一般不超过30ms(不同CPU情况不同)

缺点:将在延迟的时候占用你的CPU,对巨大延迟并不适用,请确保延迟控制在10s内(10s外请使用时间函数)