标题:该如何关闭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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-11125-1-1.html




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

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