VB中建立多线程,把创建的线程关闭后,退出程序,但程序的进程并没有退出

ltz810808 2003-07-11 11:08:48
threadid1 = CreateThread(Null, ByVal O&, AddressOf Module1.OutText1, VarPtr(0), ByVal 0&, threadid1)
threadid2 = CreateThread(Null, ByVal 0&, AddressOf Module1.OutText2, VarPtr(0), ByVal 0&, threadid2)
MsgBox "sdfdf", , "dfd"
Call TerminateThread(threadid1, 0)
Call TerminateThread(threadid2, 0)
把TerminateThread和CreateThread放在一起可以退出进程.
但如果把它们俩分别放在两个按钮事件中,线程是可以退出,但进程不能退出.
...全文
89 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ltz810808 2003-07-21
  • 打赏
  • 举报
回复
通过全局变量怎么让线程自动退出呀,能举个例子吗?
pigpag 2003-07-21
  • 打赏
  • 举报
回复
比如:
Public bFlag as Boolean

在线程的内容里加:
If bFlag Then Exit Function

然后通过外部调控bFlag=True结束进程。

要强制退出,可以用End.
Greaitm 2003-07-17
  • 打赏
  • 举报
回复
TerminateThread 不宜轻用,你学过<<深入浅处MFC>>就知道,对系统有伤害,最好是通过全局变量让线程自动退出好一点
pigsanddogs 2003-07-17
  • 打赏
  • 举报
回复
难道VB就不能做多线程的程序
是的。 不要去打 CreateThread 的主意了,因为vb原理根本就不适合
James0001 2003-07-17
  • 打赏
  • 举报
回复
退出进程?
TerminateThread 只是退出线程,不是退出进程
ltz810808 2003-07-16
  • 打赏
  • 举报
回复
难道VB就不能做多线程的程序
ltz810808 2003-07-16
  • 打赏
  • 举报
回复
我结束线程后关闭了handle句柄,可是还是退不出去,把TerminateThread和CreateThread放在一起可以退出进程.这是怎么回事,分开怎么就不行呢?
wwwdfq1977 2003-07-16
  • 打赏
  • 举报
回复
vb6或者更早的版本不可能真正做出实用的多线层程序,这是因为,vb的库函数都是为单线程设计的,如果你调用这些函数,总会出现乱七八糟的错误,你还是死了这条心吧,不过,做一些简单的演示程序来学习还是可以的,不过总是会给你太多的挫折感
bmd2chen 2003-07-15
  • 打赏
  • 举报
回复
建议不要用TerminateThread,用exitthread好一点,或直接在程序退出时用exitprocess退出
还有一点就是createthread在VB6中是不能用的,在VB的ide调试时没问题,但生成exe后独立运行就会出现内存不能为只读的错误信息.(指在win2k下其它下面没有试过)
zyl910 2003-07-14
  • 打赏
  • 举报
回复
还需要关闭线程的Handle


这是Windows系统的设定:内核对象的所有Handle关闭后才会释放
ltz810808 2003-07-14
  • 打赏
  • 举报
回复
放在sub_main()里也是不好使和以前一样,有没有别的办法,谢了.
boywang 2003-07-11
  • 打赏
  • 举报
回复
用sub_main()启动。

1,486

社区成员

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

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