DoEvents有什么作用?

SeeMeStudio 2003-01-13 07:58:29
DoEvents有什么作用?如何用DoEvents实现工作的终止?比如我有一个文件扫描的SUB,如何用DoEvents来终止这个扫描?
...全文
69 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ww28 2003-01-13
  • 打赏
  • 举报
回复
例如用在大量循环之中
程序就不会死占资源了
I_Iverson 2003-01-13
  • 打赏
  • 举报
回复
在你的程序较长时间运行时,转让控制权给操作系统,好让操作系统处理其他的事
Arcan 2003-01-13
  • 打赏
  • 举报
回复
DoEvents 函数


转让控制权,以便让操作系统处理其它的事件。

语法

DoEvents( )

说明

DoEvents 函数会返回一个 Integer,以代表 Visual Basic 独立版本中打开的窗体数目,例如,Visual Basic,专业版,在其它的应用程序中,DoEvents 返回 0。

DoEvents 会将控制权传给操作系统。当操作系统处理完队列中的事件,并且在 SendKeys 队列中的所有键也都已送出之后,返回控制权。

DoEvents 对于简化诸如允许用户取消一个已启动的过程 — 例如搜寻一个文件 — 特别有用。对于长时间过程,放弃控制权最好使用定时器或通过委派任务给 ActiveX EXE 部件来完成。以后,任务还是完全独立于应用程序,多任务及时间片由操作系统来处理。

小心 确保以 DoEvents 放弃控制权的过程,在第一次 DoEvents 返回之前,不能再次被其他部分的代码调用;否则会产生不可预料的结果。此外,如果其它的应用程序可能会和本过程以不可预知的方式进行交互操作,那么也不要使用 DoEvents,因为此时不能放弃控制权。
ok1 2003-01-13
  • 打赏
  • 举报
回复
问题1:
你试以下这两段代码就清楚啦
dim a as boolean
dim b as single
private sub command1_click
a=true
b=0
doevents
do while a
debug.print b=b+1
loop
end sub

dim a as boolean
dim b as single
private sub command1_click
a=true
b=0
do while a
debug.print b=b+1
doevents
loop
end sub
作者:星光   编程原理详解:   Image1是背景,Image2是人物(玩家),image3是子弹,image4是敌人,image5是敌人子弹,   Label1有来显示“START”和“GAMEOVER”的,Label2和Label3用来显示任务状态,   Label4和Label5显示生命值,label6显示关数,Label7显示是否发大招,   Label8和Label9是用来直观显示生命值的,算法为:Label8.Width = Label4 * 10,这几个Label控件在代码中起到间接判断的作用   Timer1控制人上升,Timer2控制人下降, Timer3和Timer4控制让玩家子弹移动,Timer5控制第一关敌人车和子弹移动   Timer6判断子弹与人是否相碰,并减小生命值,Timer7控制第二关大怪上下移动,Timer8控制第三关子弹机车的移动   所有Picture控件中的图片,都是用于人物发生动作时(有的图片没用上),进行与Image图片切换,图片切换时,让人感觉image内的图片真动了!   键盘控制说明一下,空格键负责“跳”动作,Shift键和回车键控制发大招,W、S、A、D与方向键命令一样   下面这段代码是延时代码,出现过很多次,作用是:让两张图片切换时能让我们看见,VB执行速度很快,不加入这个就会看不出来图片切换   Dim Savetime As Single   Savetime = Timer ‘记下开始的时间   While Timer < Savetime 2 ‘循环等待   DoEvents ‘控制权,以便让操作系统处理其它的事件。   Wend   好了说到这里,这是我做的第二个,还不是很完善,希望大家下载鼓励一下!里有操作说明:空格键负责“跳”动作,回车键发招,Shift键和回车键组合发大招。W、S、A、D和方向键命令一样(会玩的用前者,会玩卡丁车的用后者)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧