Option Explicit Private Declare Function GetTickCount Lib "kernel32" () As LongPrivate Sub Command1_Click() Dim sTime As LongsTime = GetTickCount()Do DoEvents Loop Until GetTickCount - sTime > 2000 '延时两秒MsgBox "测试。", vbInformation End Sub
这样循环用DoEvents等待会导致cpu的占用率为100% 我说不用timer延时就是因为这个
在qbilbo(风之兄) 的基础上修改的,我觉得简单一点。Private Sub Command1_Click() Dim sTime sTime = Timer Do DoEvents Loop Until Timer - sTime > 5 MsgBox " 测 试 ", vbInformation End Sub
用这个方法不占用Cpu资源: 加一个Timer控件,设Interval为1000 Dim sTime Private Sub Command2_Click() sTime = Timer End SubPrivate Sub Timer1_Timer() If Timer - sTime > 5 And sTime <> 0 Then MsgBox " 测 试 ", vbInformation sTime = 0 '运行你延时后的程序 End If End Sub
Private Declare Function GetTickCount Lib "kernel32" () As LongPrivate Sub Command1_Click()
Dim sTime As LongsTime = GetTickCount()Do
DoEvents
Loop Until GetTickCount - sTime > 2000 '延时两秒MsgBox "测试。", vbInformation
End Sub
我说不用timer延时就是因为这个
Dim sTime
sTime = Timer
Do
DoEvents
Loop Until Timer - sTime > 5
MsgBox " 测 试 ", vbInformation
End Sub
我说不用timer延时就是因为这个----------------------------Do
DoEvents
Sleep 0
Loop Until GetTickCount - sTime > 2000 '延时两秒这样就可以了。
加一个Timer控件,设Interval为1000
Dim sTime
Private Sub Command2_Click()
sTime = Timer
End SubPrivate Sub Timer1_Timer()
If Timer - sTime > 5 And sTime <> 0 Then
MsgBox " 测 试 ", vbInformation
sTime = 0
'运行你延时后的程序
End If
End Sub