| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 610 人关注过本帖
标题:我怎么竟遇到一些奇怪问题,print 的问题,请讲解。
只看楼主 加入收藏
txxb
Rank: 2
等 级:论坛游民
帖 子:104
专家分:59
注 册:2014-10-8
结帖率:96%
收藏
已结贴  问题点数:10 回复次数:8 
我怎么竟遇到一些奇怪问题,print 的问题,请讲解。
Private Sub Form_Click()
t = Timer
Print "这是第一行,5秒后显示第二行。"
Do While Timer < t + 5
Loop
Print "5秒到,第二行。"
End Sub

请问代码有问题吗?熟悉代码用的。第一行怎么不是立即显示??
2014-11-12 09:13
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
Private Sub Form_Click()
t = Timer
Print "这是第一行,5秒后显示第二行。"
DoEvents                              '使用前面调用的慢速操作完成
Do While Timer < t + 5
Loop
Print "5秒到,第二行。"
End Sub

授人于鱼,不如授人于渔
早已停用QQ了
2014-11-12 10:31
txxb
Rank: 2
等 级:论坛游民
帖 子:104
专家分:59
注 册:2014-10-8
收藏
得分:0 
它的原理是什么?不是逐条执行吗??谢谢。我想深刻的理解。
2014-11-12 10:40
txxb
Rank: 2
等 级:论坛游民
帖 子:104
专家分:59
注 册:2014-10-8
收藏
得分:0 
以下是引用风吹过b在2014-11-12 10:31:54的发言:

Private Sub Form_Click()
t = Timer
Print "这是第一行,5秒后显示第二行。"
DoEvents                              '使用前面调用的慢速操作完成
Do While Timer < t + 5
Loop
Print "5秒到,第二行。"
End Sub

图片附件: 游客没有浏览图片的权限,请 登录注册

这个图上的程序,怎么没有这个现象?视频教程上截的图。

[ 本帖最后由 txxb 于 2014-11-12 19:35 编辑 ]
2014-11-12 11:21
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
这个就清楚了。也许与调用有关。

在VB里,绘图操作属慢速操作,含 输出文字,画图,贴图,让控件显示文字。
快速操作为:直接写无调用的代码,计算,循环,判断等。

我感觉慢速操作属于另一个线程,慢速操作需要等待快速操作结束后才会执行。
DoEvents  命令就是让 快速操作暂停一下,等待慢速操作完成后再继续。

授人于鱼,不如授人于渔
早已停用QQ了
2014-11-12 13:44
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
回复 5 楼 风吹过 b
这好像和快慢速无关吧。
应该是和多任务系统有关,得到显示效果是系统任务,你的vb在单线程下老占着系统,系统就不会处理显示结果,Doevents语句就是暂时将线程交给系统,这时系统就会处理当前排着队的任务或消息,包括显示。
2014-11-12 15:41
txxb
Rank: 2
等 级:论坛游民
帖 子:104
专家分:59
注 册:2014-10-8
收藏
得分:0 
还是不太理解,什么情况下应该使用DoEvents?
2014-11-12 16:59
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:10 
回复 7 楼 txxb
一般在一个大循环里需要及时得到系统的输入、输出时,需要使用doevents语句给系统处理的时间。
如果你深刻理会了windows消息处理机制你就会很容易知道什么时候你能控制cpu,什么时候又需要交给操作系统控制cpu了,也许在dos里你能很清楚你的程序执行到哪里了,但在多任务系统下你只能根据事件或消息来取得电脑的控制权,你并不能清楚某一时刻程序执行到哪里,也许大部分时间是在操作系统里循环等待消息或事件发生。
2014-11-12 20:48
我可不是大神
Rank: 1
等 级:新手上路
帖 子:8
专家分:4
注 册:2014-11-14
收藏
得分:0 
撸主,求共享教程
2014-11-14 16:55
快速回复:我怎么竟遇到一些奇怪问题,print 的问题,请讲解。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026167 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved