有很多时候,我们需要两个循环在同一时间内运行,例如要显示一个总进度和一个单文件进度,当出现这样的情况时,我们需要多线程吗?这是我们要讨论的问题,关于多线程来提高速度不是我们要做的。
如果答案是未必,我相信大多数人会放弃多线程。
实现方法:模拟CPU的运行,让循环轮换执行
优点:两个循环“同时”执行,不需要多线程
缺点:不会提高程序运行的效率,但一般不会产生明显影响
代码:
'测试前添加2个COMMAND,名称默认
Option Explicit
Dim mBoolean As Boolean
Dim i As Long, j As Long
Private Sub Command1_Click()
Do While i < 100
mBoolean = Not mBoolean
If mBoolean Then Command2_Click
i = i + 1
Print "cmd1do", i
DoEvents
Loop
End Sub
Private Sub Command2_Click()
Do While j < 100
DoEvents
mBoolean = Not mBoolean
If mBoolean Then Command1_Click
j = j + 1
Print "cmd2do", j
Loop
End Sub
可以测试代码了,点COMMAND1或点COMMAND2让循环开始效果是不同的:)