首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb6 非正常关闭 进程有关问题

2012-03-16 
vb6 非正常关闭 进程问题Set Rs Conn.Execute(Select top 50000 * From tbTemp)Do Until Rs.EOFText1.

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循环,不然你的进程就会在任务管理器中存在。

热点排行