求助:我的多线程程序在新建的线程中应用ado以后进程无法退出

swordzq 2005-10-17 10:33:17
我参考了Daniel Appleman的一篇名为
<< Creating Multi-Threaded VB5/SP2 Apps >>的文章创建我的多线程程序。
把程序的类型设成Active Exe,并在工程属性里把线程模块里设成“每个对象对应一个线程”,
线程相关的代码封装在一个类中,如cls_myThread,
以后用CreateObject函数创建cls_myThread的对象,此时自动生成一个新的线程。

当我没有在新线程里使用ado做数据库相关操作时,只要把线程对象设成Nothing时,
对应的线程就能结束,但是当我使用过ado时,该线程便不能退出,
最后导致整个进程不能结束。
(我没有在线程间共享ado连接,而是在新线程里重开一个连接,不知道怎么共享,
更不知共享后会发生什么问题)

请问哪位高手能帮我解决这个进程退出的问题,谢谢了!!
...全文
281 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yas 2005-10-20
  • 打赏
  • 举报
回复
回复人: samwzhang(分全给我) ( ) 信誉:100 2005-10-17 16:13:00 得分: 0


还有啊,多线程归多线程,ADO一般还是用一个,VC里边也是这样处理的。把你的数据库访问从你的多线程里分离出去,换句话说,数据库访问占一个线程,其他线程需要进行数据库访问的都要跟这个线程申请后操作。在多线程里还操作资源,简直是找死!


--------------
同意
swordzq 2005-10-20
  • 打赏
  • 举报
回复
再顶!
province_ 2005-10-17
  • 打赏
  • 举报
回复
VB6不能做多线程,VB5可以吗?是不是ADO里的对象没关闭啊,帮顶吧。
swordzq 2005-10-17
  • 打赏
  • 举报
回复
自己顶一下
上官云峰 2005-10-17
  • 打赏
  • 举报
回复
帮你顶
samwzhang 2005-10-17
  • 打赏
  • 举报
回复
多线程起的作用是并行运算、并行通讯、不同资源的调用隔离。不是让你偷懒的。
swordzq 2005-10-17
  • 打赏
  • 举报
回复
在下面这个地址可以看到我 参考的Daniel Appleman的这篇文章

http://www.vbgood.com/vbf.good?act=Attach&type=post&id=43

province_ 2005-10-17
  • 打赏
  • 举报
回复
如果这样,我怀疑这种多线程起什么作用呢?数据库不能直接操作、GDI不能访问,又不是网络连接,那还能做什么?
swordzq 2005-10-17
  • 打赏
  • 举报
回复
samwzhang的话给我提供了另外一种好的思路,
不过我现在的做法真的没有更直接的解决方法了吗?
samwzhang 2005-10-17
  • 打赏
  • 举报
回复
还有啊,多线程归多线程,ADO一般还是用一个,VC里边也是这样处理的。把你的数据库访问从你的多线程里分离出去,换句话说,数据库访问占一个线程,其他线程需要进行数据库访问的都要跟这个线程申请后操作。在多线程里还操作资源,简直是找死!
samwzhang 2005-10-17
  • 打赏
  • 举报
回复
肯定没有Sleep、erase ...
zou19820704 2005-10-17
  • 打赏
  • 举报
回复
我也是遇到你这样的情况,nothing后还是不能结束进程!系统资源100%
swordzq 2005-10-17
  • 打赏
  • 举报
回复
ADO对象应该全部关闭了,而且相关对象的引用我也全部设成了 nothing,
可是进程就是不能退出(在windows的任务管理器里能看到),555

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧