1,486
社区成员
发帖
与我相关
我的任务
分享
Begin VB.Form MainForm
Begin VB.Timer TimerTest
Enabled = -1 'True
Interval = 1000
Left = 0
Top = 0
End
Begin VB.Timer TimerSleep
Enabled = 0 'False
Left = 0
Top = 0
End
End
Dim done1 As Boolean
Sub sleep1(ms)
done1 = False
TimerSleep.Interval = ms
TimerSleep.Enabled = True
Do
DoEvents
Loop Until done1
End Sub
Private Sub TimerSleep_Timer()
TimerSleep.Interval = 0
TimerSleep.Enabled = False
done1 = True
End Sub
Private Sub TimerTest_Timer()
Debug.Print "Test1"
sleep1 400
Debug.Print "Test2"
sleep1 800
Debug.Print "Test3"
End Sub
Public Function delay(T As Long)
Dim Savetime As Long
Savetime = timeGetTime '记下开始时的时间
While timeGetTime < Savetime + T '循环等待
Sleep (10)
DoEvents '转让控制权
Wend
End Function
timegettime cpu占用高的原因是他不停的在循环
sleep卡的原因是他不响应ui
结合起来就好了
这里sleep()里最好小于200,大于这个数还是会有点卡顿
最小可以为1,但是一般没必要,实际精度达不到1ms.
可以结贴了