vb- DoEvents函数

      DoEvents函数的功能是:转让控制权,以便让操作系统处理其它的事件。
  这种方法经常在一些监测系统中出现。比如,自己修改的进程查看器,还有就是CPU、进程等的监测小软件中。

      1.在需要用某一循环处理相当耗时或者很快速的代码时,就需要用到它,以便用户能在起处理过程中能做其他事情,即程序能被控制,而不是无响应状态
      2.vb6.0中多线程vb代码极度不稳定,而且无法调试,所以vb中的多线程用的很少(注:是指vb的代码在多线程中运行时不稳定)
      3.timer控件可以起到后台运行作用,但其是通过事件控制,一是不稳定,二是速度太慢,如果想用其处理高速又耗系统的代码更本不能达到预期的效果

            Dim  L  As   Long
           
For  L  =   1   To   999999
                 
' ** DoEvents
            Next  L 

 

如果无DoEvents,在循环过程中程序无法处理事件,对于用户来说是不响应,无法控制的,如果你有兴趣的话,可以自己试一下。所以DoEvents有时会一些大循环中作测试的时候,是一个不错的选择。

当然,有些人会想,那如果是使用DO的循环方法。没有中断的的限制,那怎么办呢。

所以这点是要注意的,来很多的循环当时,都要有增加一个判断退出的条件,这个条件可以在其它方式下实现,比如说:关闭,最小化,或者简单点就是点击一个中断按钮。这点在开发的过程中,注意一下就不会出现大的问题。

很多的时候,在开发的过程中,要使用Doevents,可是使用的时候,运行速度会变慢,在这个时候,就要使用GetInputState API函数了。它的声明语句为:


ExpandedBlockStart.gif ContractedBlock.gif   Public   Declare   Sub Sleep() Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
ExpandedSubBlockStart.gifContractedSubBlock.gif 
Public Declare Function GetInputState()Function GetInputState Lib "user32" () As Long
 
例如用: If GetInputState() Then DoEvents '来代替doevents可使循环运行更快。
上面讲述的是自己的一些经验小结,只要合理的使用DoEvents,会使开发出来的软件更加完善。

 

转载于:https://www.cnblogs.com/iswszheng/archive/2009/06/24/1508825.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值