我的代码是,打开一个1000万数据量的表,
do until rs.eof
'工作内容
DoEvents
rs.movenext
loop
现在我的机器在开这个vb.exe程序的时候,别的工作都干不了,请问如何解决啊?
我的机器是WindowsServer2008R2,64位,酷睿i7,8G内存
6 个解决方案
#1
这样处理数据,你的程序肯定响应很慢。正常情况。
#2
什么都不做,从1数到1000万都要好久,短时间没有反应正常
#3
慢是正常,但是未响应正常吗?移动窗口之类的就卡住了,我希望是它内部处理慢点无所谓,在外面能正常用。
#4
因为VB是单线程环境(很难搞好VB的多线程)当程序从服务器加载数据的时候,程序是挂起的,此时将会失去对用户的响应,只有数据返回,或者超时时间到,才能继续响应用户的操作
#5
想不是什么样的需求,要在VB中遍历1000万的数据表,而不在数据库里处理
#6
尝试将这个过程放入一个ActiveX EXE中的类里面执行,这样就可以在主程序里等待执行完毕的通知.
ActiveX EXE中可设置工程属性为"每对象对应一个线程",就能让其中经由CreateObject创建的对象工作于另一线程,这个非常适合于干这种事....
ActiveX EXE的多线程参考:
http://blog.m5home.com/default.asp?id=54
ActiveX EXE中可设置工程属性为"每对象对应一个线程",就能让其中经由CreateObject创建的对象工作于另一线程,这个非常适合于干这种事....
ActiveX EXE的多线程参考:
http://blog.m5home.com/default.asp?id=54
#1
这样处理数据,你的程序肯定响应很慢。正常情况。
#2
什么都不做,从1数到1000万都要好久,短时间没有反应正常
#3
慢是正常,但是未响应正常吗?移动窗口之类的就卡住了,我希望是它内部处理慢点无所谓,在外面能正常用。
#4
因为VB是单线程环境(很难搞好VB的多线程)当程序从服务器加载数据的时候,程序是挂起的,此时将会失去对用户的响应,只有数据返回,或者超时时间到,才能继续响应用户的操作
#5
想不是什么样的需求,要在VB中遍历1000万的数据表,而不在数据库里处理
#6
尝试将这个过程放入一个ActiveX EXE中的类里面执行,这样就可以在主程序里等待执行完毕的通知.
ActiveX EXE中可设置工程属性为"每对象对应一个线程",就能让其中经由CreateObject创建的对象工作于另一线程,这个非常适合于干这种事....
ActiveX EXE的多线程参考:
http://blog.m5home.com/default.asp?id=54
ActiveX EXE中可设置工程属性为"每对象对应一个线程",就能让其中经由CreateObject创建的对象工作于另一线程,这个非常适合于干这种事....
ActiveX EXE的多线程参考:
http://blog.m5home.com/default.asp?id=54