| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4175 人关注过本帖
标题:vfp中如何实时显示某段循环的累计时间
只看楼主 加入收藏
djszyyc
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2013-3-17
收藏
得分:0 
回复 8楼 kiff
thisform.t1.Value =SECONDS()
thisform.timer1.Enabled=.t.
FOR i=1 TO 1000
    WAIT WINDOW 'ESC 停止' TIMEOUT 2 (1)
    IF INKEY()=27  (2)
        EXIT (3)
    ENDIF  (4)
ENDFOR
thisform.timer1.Enabled=.f.
以上是8楼的代码,问题是vfp在执行你的(1),(2),(3),(4)这个循环体时,可以显示,但在执行我的循环体时,由于VFP是单线程,这时他就只执行循环体内的内容,而对Timer这个控件,VFP则好象没看到它的存在,只是在这个循环结束时,Timer控件在发生作用
2013-03-22 10:52
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
循环体要写在timer的timer里

DO IT YOURSELF !
2013-03-22 10:53
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:0 
以下是引用djszyyc在2013-3-22 10:52:20的发言:

thisform.t1.Value =SECONDS()
thisform.timer1.Enabled=.t.
FOR i=1 TO 1000
    WAIT WINDOW 'ESC 停止' TIMEOUT 2 (1)
    IF INKEY()=27  (2)
        EXIT (3)
    ENDIF  (4)
ENDFOR
thisform.timer1.Enabled=.f.
以上是8楼的代码,问题是vfp在执行你的(1),(2),(3),(4)这个循环体时,可以显示,但在执行我的循环体时,由于VFP是单线程,这时他就只执行循环体内的内容,而对Timer这个控件,VFP则好象没看到它的存在,只是在这个循环结束时,Timer控件在发生作用
Timer 是有时钟频率问题,如果你的循环体执行很快的,就无需用 Timer 了,直接在 循环体 刷新 SECONDS()-T1,我以为你的循环一次需长时间(如:大于2秒),才用 Timer 的

我原设的一次循环时间是 0.001
    WAIT WINDOW 'ESC 停止' TIMEOUT 0.001





[ 本帖最后由 kiff 于 2013-3-22 11:39 编辑 ]
2013-03-22 11:01
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:1 
程序代码:
T1=SECONDS()
FOR I=1 TO 99999999
    T2=SECONDS()
    thisform.text1.Value=[共用时]+TRANSFORM((t2-t1)/1000)+[]
ENDFOR
2013-03-22 11:05
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
是不是要这种效果:
运行时间.rar (2.09 KB)

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2013-03-22 11:14
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2013-03-22 11:17
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:1 
其实很简单的:
Archive.rar (1.57 KB)

相互学习,互相交流,共同提高。
2013-03-22 11:30
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:0 
以下是引用qjbzjp在2013-3-22 11:30:16的发言:

其实很简单的:
是的,我13楼就是这意思
2013-03-22 11:33
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:0 
我的考虑是这样:楼主的意思,是执行一个耗时过程时,此过程所消耗的时间秒,要实时的或即时的显示出来。这说明了一个问题,即:一边执行耗时过程,同时,(注意同时2字),显示出消耗时间。请各位考虑这种同时运行的现象。这本身就是多线程运行,单线程如何实现呢?单线程只能运行完毕一个,再接着运行下一个。5 楼为什么要那样的提法,就是根据这个方面考虑的。在 vfp 中,能实现多个程序同时运行的方法,只有通过 api 调用其他文件而实现,api 可以同时调用几个文件,调用后并不停止,立即向下运行下一句。所以同时运行成为可能。因此,仔细考虑,这个问题不是那么简单的吧。(不知是不是理解错误,望大家多指教)
2013-03-22 20:47
djszyyc
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2013-3-17
收藏
得分:0 
回复 19楼 qingfameng
是我嘴笨,没把问题说清楚,19楼最理解我,我就是要即时显示某段耗时程序所用的时间(因为里面有很多循环语句)
请各位大侠们帮帮我哈.
2013-03-23 07:10
快速回复:vfp中如何实时显示某段循环的累计时间
数据加载中...
 
   



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

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