我的程序中出了这样1个问题。就是在时间控件调用的函数未执行结束时,如要关闭窗体,并不能彻底的把这个程序关闭掉。表面上程序 是关闭了,但是在CTRL+ALT+DEL的管理器中仍能看到该程序。 为了清楚说明我的意思,我写个简单的例子(源程序太麻烦),只是表达我程序的大概意思及出现的问题:sub formload() timer1.inveral=50 timer.enable=trueend subsub timer_time() '时间控件的过程头好象是这么写的吧! beidiaoyonghanshu(50000) timer1.enable=falseend subsub 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执行完毕后,关闭程序则可以彻底的把程序关闭掉。 我想知道 这是为什么!该如何彻底的关闭程序!!!!!!
End
End Sub
Private Sub Form_Unload(Cancel As Integer)
End
End Sub
Timer1.Interval = 3000
Timer1.Enabled = True(打开时间控键)
End Sub 设置时间为3秒 启动时间控键Private Sub Timer1_Timer()
Timer1.Enabled = False(关闭时间控键)
End Sub
不过没有结束的原因应该是for里的那个doevents造成的。
效果不太坏的话最好是不要使用。还有一个方法就是在for里加一个退出标志private stop_flag as booleansub form_unload()
stop_flag=true
end sub
sub xxx()
for ....
doevents
if stop_flag then exit for '(exit sub看你需要了~)
next
end sub
Private Sub Form_Unload(Cancel As Integer)
End
End Sub中的END 是什么意思?他的功能是什么啊?我写的程序中不能用。做了个简单的实验用END后,程序就好象进入了死循环(98系统)。什么都不动了。
你的问题象publicsub() 那样解决应该可以吧!可以吗?你试试!
用了End后程序就完全退出了,死循环应当是的Time处理出问题了,并没有执行End