找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 5224|回复: 1

【推荐】加速VB中DoEvents

[复制链接]

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

发表于 2009-1-30 23:28:55 | 显示全部楼层 |阅读模式
<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>
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755

0

主题

13

回帖

0

精华

铜牌会员

积分
246
发表于 2009-3-16 09:06:23 | 显示全部楼层
不錯,支持一下
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表