|

楼主 |
发表于 2016-3-1 10:48:51
|
显示全部楼层
本帖最后由 yqlh_20 于 2016-3-1 10:51 编辑
Option Explicit
Private Sub Command1_Click()
Dim dtStartTm As Single
dtStartTm = Timer
aaa:
If (Timer - dtStartTm) < 10 Then
DoEvents
Label1.Caption = (Timer - dtStartTm)
GoTo aaa
End If
MsgBox "Command1 已延时10秒!"
End Sub
Private Sub Command2_Click()
Dim dtStartTm As Single
dtStartTm = Timer
Do While (Timer - dtStartTm) < 10
DoEvents
Label2.Caption = (Timer - dtStartTm)
Loop
MsgBox "Command2 已延时10秒!"
End Sub
改成用if来判断延时,也是同样的问题。后一个启动的延时过程会阻止先启动的延时过程的运行,等后启动的延时过程运行结束,先启动的延时过程才继续运行。循环时占用CPU,但Doevents释放了控制权还是不行,无法让两个循环过程同时运行。 |
|