社区
VB基础类
帖子详情
为什么要使用DoEvents函数把控制权交给系统?
wuzhong
2003-12-10 01:28:26
使用DoEvents函数与不使用有什么区别,什么情况下要使用它?
...全文
73
6
打赏
收藏
为什么要使用DoEvents函数把控制权交给系统?
使用DoEvents函数与不使用有什么区别,什么情况下要使用它?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wuzhong
2003-12-12
打赏
举报
回复
谢谢各位!!!!!!!!!!!!!!!
射天狼
2003-12-10
打赏
举报
回复
因为VB对多线程的支持不是很好,使用时会出现问题,这样微软推出一此函数,以转让系统控制权,防止费时的操作时,系统如同死掉一样!.
maculasoft
2003-12-10
打赏
举报
回复
将控制权交给操作系统,以便用户进行其它操作
Maconel
2003-12-10
打赏
举报
回复
比如你在程序中做这样一个循环
for i=0 to 100000000
for j=0 to 10000000000
a=1
next j
next i
运行后程序会好象死了一样,如果窗体上还有其他按纽,会点了没反应。
但如果你在a=1下边加上一句doevents,
那么程序就不会死了,其他按纽都可以点。
SoHo_Andy
2003-12-10
打赏
举报
回复
转让控制权,以便让操作系统处理其它的事件。
语法
DoEvents( )
说明
DoEvents 函数会返回一个 Integer,以代表 Visual Basic 独立版本中打开的窗体数目,例如,Visual Basic,专业版,在其它的应用程序中,DoEvents 返回 0。
DoEvents 会将控制权传给操作系统。当操作系统处理完队列中的事件,并且在 SendKeys 队列中的所有键也都已送出之后,返回控制权。
DoEvents 对于简化诸如允许用户取消一个已启动的过程 — 例如搜寻一个文件 — 特别有用。对于长时间过程,放弃控制权最好使用定时器或通过委派任务给 ActiveX EXE 部件来完成。以后,任务还是完全独立于应用程序,多任务及时间片由操作系统来处理。
小心 确保以 DoEvents 放弃控制权的过程,在第一次 DoEvents 返回之前,不能再次被其他部分的代码调用;否则会产生不可预料的结果。此外,如果其它的应用程序可能会和本过程以不可预知的方式进行交互操作,那么也不要使用 DoEvents,因为此时不能放弃控制权。
使用之后程序会有暂时的停顿
举个例子,当你进行大量数据处理时需要在界面上使用label提示进度,但实际上
因为系统占用率很高,所以界面不可能得到刷新显示,这时候就要在给label赋值之后
使用doevents函数返回系统控制权,这是系统就会处理界面的刷新显示等问题,你的
提示用户就能看到了
davidlv
2003-12-10
打赏
举报
回复
使用后,就可以继续操作其他事了,不会感觉有停顿
Do
Events
函数
详解[参考].pdf
这是因为Do
Events
函数
只是将
控制权
交给
操作
系统
,但不能确保程序的结束,可以
使用
全局变量来控制循环的结束。 2. 如何中止循环?可以
使用
全局变量来控制循环的结束,并在循环中
使用
Do
Events
函数
。 Do
Events
函数
是VB...
模拟VB的Do
Events
函数
当程序在执行某个可能耗时的操作时,如循环、文件读写或网络请求,调用Do
Events
可以让程序暂时放弃CPU
控制权
,让操作
系统
有机会处理其他窗口消息,如鼠标点击、键盘输入等。这样,即使程序正在执行繁重任务,用户...
Do
Events
语句的API升级版Do
events
2
在VB中,`Do
Events
`语句的作用是暂停当前进程的执行,并将
控制权
短暂
交给
操作
系统
,这样
系统
就可以处理那些在当前进程中被挂起的其他事件。例如,用户界面的响应、定时器事件等。一旦操作
系统
处理完这些事件,`...
Do
Events
可以让程序在执行操作的同时仍可以处理其他事件
`Do
Events
`
函数
的工作原理是将
控制权
暂时交还给操作
系统
,使得操作
系统
有机会处理待处理的其他事件,如键盘输入、鼠标点击或者窗口更新等。当`Do
Events
`调用结束,程序会重新获取
控制权
,继续执行下面的代码。这种...
C# Application.Do
Events
() 防界面假死例子。
在.NET框架中,`System.Windows.Forms.Application.Do
Events
()` 方法是一个非常特殊的
函数
,它将
控制权
暂时
交给
Windows消息队列,处理任何等待处理的事件。当程序执行耗时的操作(如数据库查询或大型文件处理)时,...
VB基础类
7,785
社区成员
197,585
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章