阿杰 发表于 2009-1-30 23:28:55

【推荐】加速VB中DoEvents

<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/>&nbsp;&nbsp;&nbsp;&nbsp; Dim s As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp; s = GetTickCount<br/>&nbsp;&nbsp;&nbsp;&nbsp; For i = 1 To 1000000<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DoEvents<br/>&nbsp;&nbsp;&nbsp;&nbsp; Next<br/>&nbsp;&nbsp;&nbsp;&nbsp; MsgBox GetTickCount - s<br/>End Sub</font></p>
<p><font face="Verdana">Private Sub Command2_Click()<br/>&nbsp;&nbsp;&nbsp;&nbsp; Dim s As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp; s = GetTickCount<br/>&nbsp;&nbsp;&nbsp;&nbsp; For i = 1 To 1000000<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If GetInputState Then DoEvents<br/>&nbsp;&nbsp;&nbsp;&nbsp; Next<br/>&nbsp;&nbsp;&nbsp;&nbsp; MsgBox GetTickCount - s<br/>End Sub</font></p>

5988143 发表于 2009-3-16 09:06:23

不錯,支持一下
页: [1]
查看完整版本: 【推荐】加速VB中DoEvents