VB中DoEvents的用途

前端之家收集整理的这篇文章主要介绍了VB中DoEvents的用途前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
 暂时挂起当前任务,转而完成队列中等待的任务后,再返回当前任务
   比如: 如果不用此语句,在你的循环中可能导致你离开窗口处理其它任务(程序)会非常的慢,而用此语句之后,会根据队列中等待的任务状态进行处理,尽可能不影响你程序运行中做其它的工作。

转移到下一个控件进行事件响应时,例如,窗体卸载,即将打印,即将CSV,在对记录集进行操作时对其他

处理其它事件是什么呢?顾名思意,就是先行处理程序里其它正在发生的事件,当程序陷入回圈时,整个程序都会停在处理回圈上,当回圈尚未被处理结束,程序便一直被停摆,在这个时间内而有其它事件发生时,VB会视而不见,为了解决这个麻烦的问题,DoEvents便是因此而但生。

windows系统是多任务系统,多个任务可以同时运行,而实际上,这些任务是处在一个任务队列中的,根据cpu分配的时间片而轮流执行,因为这个循环时间很快,所以我们就感觉它们是在同时运行的。而VB的DoEvents的作用,就是暂时停止自身运行(术语叫挂起),让系统任务队列中的其他任务先运行。这个有什么作用呢?当VB程序运行一个很大的循环时,由于占用cpu时间太多,会使系统出现类似死机一样的状态,这时如果在循环中用DoEvents语句,就可以把占用的时间让出一部分给其他软件,从而改善系统的运行效能。

打个通俗的比方吧:很多人排队买火车票,轮到你了,恰巧你的手机响了,这时如果你接听手机而又占着售票窗口,那么后面的人就都得等你了,而如果你让下一个人先买,自己接完电话再买,这样整个队列的行进速度是不是就快些?这就是DoEvents的作用! 
   在一些不断循环查询中,因为太占用计算机,已知用户的其他事情和操作都得不到计算机的响应。
为了解决这个问题,在循环内加入VB DoEvents指令,每次循环到这里,就看一下有没有什么紧要的事情要做。 

EX:

For N = 1 To 100000

Me.Caption = N

Next

按程序的流程来说,Me.Caption的内容会依序由1开始显示到100000,可是事时上程序却停顿一会,并直接跳到显示100000,这并不是电脑速度很快的缘故,而是VB正忙於For ... Next ...回圈,而不处理其它正在发生的事件。为了解决这个问题,DoEvents函式就要上场了。

DoEvents


还有一例:

Open "stupids.txt" For Input As #1

Do Until EOF(1)

Line Input #1,MyStr

Text1.Text = Text1.Text + MyStr + vbCrlf

Loop

Close #1

照理说可以看到文字一段一段被放入TextBox,可是结果也是停顿一段时间後,整个TextBox就会突然出现所有的文字解决方法就是加入DoEvents。

DoEvents

Close #1

原文链接:https://www.f2er.com/vb/259198.html

猜你在找的VB相关文章