|
<p><font face="Verdana">加速VB中DoEvents</font></p>
<p><font face="Verdana">DoEvents却是可以使应用程序响应其他程序,但是 DoEvents也会很大程度上影响循环的速度,所以一般情况我这样用 </font></p>
<p><font face="Verdana">If GetInputState Then DoEvents<br/>虽然多了个判断语句,但速度上确快了很多 </font></p>
<p><font face="Verdana">比较以下代码代码就知道了速度的差别 </font></p>
<p><font face="Verdana">Private Declare Function GetInputState Lib "user32" () As Long<br/>Private Declare Function GetTickCount Lib "kernel32" () As Long</font></p>
<p><font face="Verdana">Private Sub Command1_Click()<br/> Dim s As Long<br/> s = GetTickCount<br/> For i = 1 To 1000000<br/> DoEvents<br/> Next<br/> MsgBox GetTickCount - s<br/>End Sub</font></p>
<p><font face="Verdana">Private Sub Command2_Click()<br/> Dim s As Long<br/> s = GetTickCount<br/> For i = 1 To 1000000<br/> If GetInputState Then DoEvents<br/> Next<br/> MsgBox GetTickCount - s<br/>End Sub</font></p> |
|