看了半天CSDN 还有点莫名其妙,下边是里边的示例程序,
'
此按钮最初的标题是"Process"
。Private Sub Command1_Click()
'
过程的所有实例都'
共享静态变量。Static blnProcessing As Boolean
Dim lngCt As Long
Dim intYieldCt As Integer
Dim dblDummy As Double
'
按下按钮时,检测是否'
已经在处理。If blnProcessing Then
'
如果正在处理,则取消处理。blnProcessing = False
Else
Command1.Caption = "Cancel"
blnProcessing = True
lngCt = 0
'
执行一百万次浮点'
乘法计算。每一千次后,'
检测是否要取消。Do While blnProcessing And (lngCt < 1000000)
For intYieldCt = 1 To 1000
lngCt = lngCt + 1
dblDummy = lngCt * 3.14159
Next intYieldCt
'DoEvents
语句允许其它事件'
发生,包括第二次'
按此按钮。DoEvents
Loop
blnProcessing = False
Command1.Caption = "Process"
MsgBox lngCt & " multiplications were performed"
End If
End Sub
后来把 DoEvents 这句去掉再运行一下终于明白了,其实就是防止程序在运行一个长时间的过程或函数
的时候停止响应,让它不时的停下来看看有什么其它事件发生,来响应事件.
防止就像我们经常看到有些程序显示" 没有响应"字样,那种情况