vb程序的未响应如何解决?

时间:2023-01-21 13:55:49
我用vb编写的程序在移动窗口或者做别的软件工作的时候,经常发生“未响应”然后等待一会就可以正常工作了,请问这是怎么回事啊?如何解决该问题?

我的代码是,打开一个1000万数据量的表,
do until rs.eof
  '工作内容
  DoEvents
  rs.movenext
loop

现在我的机器在开这个vb.exe程序的时候,别的工作都干不了,请问如何解决啊?
我的机器是WindowsServer2008R2,64位,酷睿i7,8G内存

6 个解决方案

#1


这样处理数据,你的程序肯定响应很慢。正常情况。

#2


什么都不做,从1数到1000万都要好久,短时间没有反应正常

#3


慢是正常,但是未响应正常吗?移动窗口之类的就卡住了,我希望是它内部处理慢点无所谓,在外面能正常用。

#4


引用 3 楼 notended 的回复:
慢是正常,但是未响应正常吗?移动窗口之类的就卡住了,我希望是它内部处理慢点无所谓,在外面能正常用。


因为VB是单线程环境(很难搞好VB的多线程)当程序从服务器加载数据的时候,程序是挂起的,此时将会失去对用户的响应,只有数据返回,或者超时时间到,才能继续响应用户的操作

#5


想不是什么样的需求,要在VB中遍历1000万的数据表,而不在数据库里处理

#6


尝试将这个过程放入一个ActiveX EXE中的类里面执行,这样就可以在主程序里等待执行完毕的通知.

ActiveX EXE中可设置工程属性为"每对象对应一个线程",就能让其中经由CreateObject创建的对象工作于另一线程,这个非常适合于干这种事....

ActiveX EXE的多线程参考:

http://blog.m5home.com/default.asp?id=54

#1


这样处理数据,你的程序肯定响应很慢。正常情况。

#2


什么都不做,从1数到1000万都要好久,短时间没有反应正常

#3


慢是正常,但是未响应正常吗?移动窗口之类的就卡住了,我希望是它内部处理慢点无所谓,在外面能正常用。

#4


引用 3 楼 notended 的回复:
慢是正常,但是未响应正常吗?移动窗口之类的就卡住了,我希望是它内部处理慢点无所谓,在外面能正常用。


因为VB是单线程环境(很难搞好VB的多线程)当程序从服务器加载数据的时候,程序是挂起的,此时将会失去对用户的响应,只有数据返回,或者超时时间到,才能继续响应用户的操作

#5


想不是什么样的需求,要在VB中遍历1000万的数据表,而不在数据库里处理

#6


尝试将这个过程放入一个ActiveX EXE中的类里面执行,这样就可以在主程序里等待执行完毕的通知.

ActiveX EXE中可设置工程属性为"每对象对应一个线程",就能让其中经由CreateObject创建的对象工作于另一线程,这个非常适合于干这种事....

ActiveX EXE的多线程参考:

http://blog.m5home.com/default.asp?id=54