vb6 非正常关闭 进程问题
Set Rs = Conn.Execute("Select top 50000 * From tbTemp")
Do Until Rs.EOF
Text1.Text = Rs("id")
DoEvents
Rs.MoveNext
Loop
如上程序,我在运行时Text正常显示当前的id,如果Do没执行完,当我点关闭时,窗口关闭,但是资源管理器中还存在该进程;如果Do循环完,当点击关闭时才正常结束,请问,如何在Do没执行完的情况下,当我点击关闭时,可以正常的关闭?
关闭是窗口左上角的X,或End代码。
[解决办法]
循环没完成,进程还在运行中
1、在声明部分添加变量f作结束标志
Dim f As Boolean
2、Do Until Rs.EOF修改为
Do Until Rs.EOF Or f
3、Form_Unload中添加
f=True
[解决办法]
DoEvents 表示停止并交给系统排列后继续运行
我通常做2个按钮,一个是停止,一个是关闭,停止就用1楼的方法,先跳出循环,程序执行到底结束,这时你再关闭就没有任何问题了;关闭用end代码,window的右上角的x按钮点击后虽然在Form_Unload中执行,但是直接点击的话还是会有未结束的进程存在,用end也得先将当前程序执行完(代码从上到下)才行,否则也会存在未结束的进程。
关闭时必须保证代码从上到下已经读完才行,所以跳出循环是很完美的一招。
[解决办法]
建议关闭前先设法退出DO循环,或强制终止Do循环,不然你的进程就会在任务管理器中存在。