社区
网络编程
帖子详情
我想问一下doevents的用法
itcoco
2003-10-17 06:06:24
我想问一下doevents的用法 也知道他是和操作系统控制权有关 但还是不太理解
现在贴了关于他的一些代码请大家给我讲解以下
Private Sub Form_Load()
fileName = "c:\IPDetail.txt"
Shell "command.com /c ipconfig.exe > " & fileName
DoEvents
Do While Trim(Dir(fileName)) = ""
DoEvents
Loop
End Sub
...全文
78
8
打赏
收藏
我想问一下doevents的用法
我想问一下doevents的用法 也知道他是和操作系统控制权有关 但还是不太理解 现在贴了关于他的一些代码请大家给我讲解以下 Private Sub Form_Load() fileName = "c:\IPDetail.txt" Shell "command.com /c ipconfig.exe > " & fileName DoEvents Do While Trim(Dir(fileName)) = "" DoEvents Loop End Sub
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
aha99
2003-10-19
打赏
举报
回复
TO:zyl910(910:分儿,我又来了!)
谢谢指点,确实是这样的,只是该程序停止响应消息处理,而不是整个系统。
buffaloes
2003-10-18
打赏
举报
回复
严重同意楼上说的.其实更简单一点的描述是:
让系统立即执行doevents前面的代码.这一点是我在作winsock编程时得来的深刻体会.
zyl910
2003-10-18
打赏
举报
回复
看来楼上的都不明白 系统 与 线程 的 区别
线程有两种:UI线程 和 工作线程。他们的区别在于 UI线程 建立了消息循环,能够把消息(主要是 键盘、鼠标、投递、刷新、时间 消息)发送到窗口
VB的事件只是对Windows的封装,Load事件发生在窗口刚刚建立的时候
此时窗口还没有刷新,所以看不到窗口
如果你不加DoEvents的话,该线程会一直停在Form_Load过程中,不能回到消息循环继续发送消息
这就像死机了一样。但“死”的只是这个线程,而不是Windows操作系统
而DoEvents的作用只是处理自身线程的积压消息,而不是释放CPU控制权给其他线程
所以就算加了DoEvents,CPU的占用率还是100%
真正 释放CPU控制权 的是Sleep函数(API)
aha99
2003-10-18
打赏
举报
回复
楼上的说得对,其实就是释放控制权,让系统处理下面的东西,否则的话,系统一直在忙你的操作。如果你的操作有延迟,那样的话系统就暂时会停止响应其他的消息,直到你的操作完成。如果上面的例子没有 DoEvents ,就会一直do while ,文件出来之前就 和死机一样
tanta
2003-10-17
打赏
举报
回复
呵呵,楼上写错了,应该是程序将一直执行到文件名为:filename的文件存在为止!
实际上就是要确保外部程序执行完毕。
请看:
Private Sub Form_Load()
fileName = "c:\IPDetail.txt"
Shell "command.com /c ipconfig.exe > " & fileName ‘ 执行外部命令
DoEvents
Do While Trim(Dir(fileName)) = "" 如果文件不存在,循环
DoEvents
Loop
End Sub
海牛
2003-10-17
打赏
举报
回复
程序将一直执行到文件名为:filename的文件不存在为止!
zyl910
2003-10-17
打赏
举报
回复
doevents的作用只是:处理自身线程的积压消息
所谓的“和操作系统控制权有关”只是那些专业人员认为 这样说比较好理解
itcoco
2003-10-17
打赏
举报
回复
up
Do
Events
的
用法
注:摘自互联网VB Do
Events
用法
VB6.0 Windows98 我要实现一个类似Windows复制(移动)文件时的提示窗体,耗时很长,且要求中断后能继续未完成的操作,不知使用Do
Events
从长循环中跳出后,程序将从何处开始继续执行,是否是从Do
Events
所在的Sub开始?(倔小孩) 事实上仅使用Do
Events
,并不意味着从长循环中跳出。Do
Events
只
VB Do
Events
用法
VB6.0 Windows98 我要实现一个类似Windows复制(移动)文件时的提示窗体,耗时很长,且要求中断后能继续未完成的操作,不知使用Do
Events
从长循环中跳出后,程序将从何处开始继续执行,是否是从Do
Events
所在的Sub开始?(倔小孩) 事实上仅使用Do
Events
,并不意味着从长循环中跳出。Do
Events
只是允许用户选择其他按钮而已,不中断循环,不管用户如何操作,都继续执行...
VB中Do
events
函数详解
Do
events
函数是一个很好用的函数,但很多人对它的
用法
不清楚或有误解。由于我在网上查到一篇关于此函数的
用法
,并添加了一些内容,不敢独享,特此献出。其中有一个“控时循环和变速齿轮”的内容,有点意思,感兴趣的可看一看。Do
Events
函数的功能是:转让控制权,以便让操作系统处理其它的事件。
问
:为什么要用do
events
? A.在需要用某一循环处理相当耗时或者很快速的代码时,就需要用到它,以便用...
Do
events
函数详解
Do
events
函数是一个很好用的函数,但很多人对它的
用法
不清楚或有误解。由于我在网上查到一篇关于此函数的
用法
,并添加了一些内容,不敢独享,特此献出。 其中有一个“控时循环和变速齿轮”的内容,有点意思,感兴趣的可看一看。 Do
Events
函数的功能是:转让控制权,以便让操作系统处理其它的事件。
问
:为什么要用do
events
? A.在需要用某一循环处理相当耗时或者很快
Do
events
用法
网络编程
1,502
社区成员
18,439
社区内容
发帖
与我相关
我的任务
网络编程
VB 网络编程
复制链接
扫一扫
分享
社区描述
VB 网络编程
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章