| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2281 人关注过本帖
标题:该如何关闭Timer控件
只看楼主 加入收藏
不走完美
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-1-1
收藏
 问题点数:0 回复次数:4 
该如何关闭Timer控件

我的程序中出了这样1个问题。就是在时间控件调用的函数未执行结束时,如要关闭窗体,并不能彻底的把这个程序关闭掉。表面上程序 是关闭了,但是在CTRL+ALT+DEL的管理器中仍能看到该程序。

为了清楚说明我的意思,我写个简单的例子(源程序太麻烦),只是表达我程序的大概意思及出现的问题:

sub formload()

timer1.inveral=50

timer.enable=true

end sub

sub timer_time() '时间控件的过程头好象是这么写的吧!

beidiaoyonghanshu(50000)

timer1.enable=false

end sub

sub BeiDiaoYongHanShu(byval Maxnum as integer)

dim sum as long 是否会溢出 暂且不说

for i=1 to Maxnum <--------只要是一个需要执行10秒以上的循环即可

Doevents

sum=i*sum

next i

form1.text1.text=sum 赋值是否有效 暂且不说

end sub

在BeiDiaoYongHanShu没有执行完毕的时候关闭Form,表面上看是关闭了,但在进程管理器中可以发现程序其实还 未关闭,资源也没有释放出来。如果在BeiDiaoYongHanShu执行完毕后,关闭程序则可以彻底的把程序关闭掉。

我想知道 这是为什么!该如何彻底的关闭程序!!!!!!

搜索更多相关主题的帖子: Timer 控件 
2005-01-11 21:50
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
doevents是显示出让控制权的语句,一般用在ActiveX EXE控件中。因为EXE控件是进程外组件,可以做出多进程的应用程序。我想楼主的程序显然是每循环一次程序会让出控制权,而未循环完成时控制权并没有转回源程序。可能因为此种原因导致了楼主的现象。不过doevents的执行时间的确是不好掌握,一般最好用在ActiveX EXE组件中而且最好是两个对象调用相同方法时使用。直接用在源程序里的确不好掌握。
2005-01-11 22:43
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
收藏
得分:0 

在关闭程序的时候设置ExitFlag标志 for i=1 to Maxnum <--------只要是一个需要执行10秒以上的循环即可

Doevents

sum=i*sum

if ExitFlag=true then Exit Sub next i


天津网站建设 http://www./
2005-01-12 09:53
abingchem
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:716
专家分:0
注 册:2004-12-30
收藏
得分:0 
还有就是像你这样计算加和的程序很快执行的,不用转移控制权的,一般是要长时间占用cpu才会使用doevents

此人已消失
2005-01-12 09:58
不走完美
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-1-1
收藏
得分:0 
griefforyou所说,问题已经解决的 谢谢~~~~~~~~~~~~~~~`
2005-01-13 19:52
快速回复:该如何关闭Timer控件
数据加载中...
 
   



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

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