收录日期:2020/06/02 03:43:54 时间:2016/06/12 02:12:12 标签:进程/线程/DLL
如何强制结束一个程序下的所有子线程?

我的程序开启了很多子线程,但是可能是做得不好,每次关闭程序的时候都回发生内存访问非法操作,我怀疑这是子线程没有被彻底关闭。所以我想在程序结束的时候强制结束所有子线程,而不检查它们的状态,请问这有无可能?
TerminateThread,不过不建议使用。
内在非法访问可能是一个线程还没停的时候,用到的东西被释放了吧。
设置结束标志通知每个线程,然后,等待线程结束,用MsgWaitForMutilObjects
结束的时候,给每个子线程发送退出消息,并且检测每一个子线程的状态,确认每个子线程都退出,如果在规定的时间还没有退出,就TerminateThread吧
每次关闭程序的时候都回发生内存访问非法操作,我怀疑这是子线程没有被彻底关闭。
---------------------------

你的怀疑是不正确的,内存访问非法,与子线程有没有关闭可以说是没有直接关系的
问题在于你编写的程序中,出现了没有正确处理一些情况的判断,对于有些变量的使用没有检验有效性
强制就用 TerminateThread
press power key
访问非法我觉得和是否结束所有线程没有关系,即使你结束线程,你也不知道以何种顺序结束线程,这个问题仍然有一定的频率出现。
为了简单期间,我建议你截获结束进程的消息时,调用ExitProcess函数。

为什么我好像第一次能连接数据库,点击“删除”按钮以后,第二次却不可以呢? 关于socket和多线程的问题 使用《DELPHI5.x高级程序设计篇》上的例子出错:跟踪发现mtx.pas中CoGetObjectContextProc(IID_IObjectContext, Result)没有返回结果,导 寻求ReportBuilder 6.0控件的注册码? ----------------关于TCP滑动窗口的演示 急!!------------- 调用子程序不能使用括号?高手指教 请问现在是应该学习asp还是asp.net? 简单问题 关于发票打印,用printer可行吗? 请问mysql下怎么授权? 包里的类能不能和包外的类通讯? 关于系统托盘编程的问题 同样问题再问一遍,看清了再说话 请问如何读写mp3文件的IDv1和IDv2标签? ?????(c++)带数组的函数如何在主函数中调用?/(请大侠举例)?????? delphi有没有将字符‘42.23’转成实数的函数啊 近来较多的人提问关于怎样在VC里使用ADO、MSChart和MSDBGird(OLE DB)的使用。我已把例子上传到主页上,有兴趣的朋友可以去下载。地址是: 求助,哪里能下载到regsrv32 或 regocx32.exe 应用程序 有考SCJD的吗? 关于OnContextMenu函数的问题 请问Domino/Lotus中用何工具做WEB界面? 谁能说一说HashMap和HashTable的区别,哪个效率高呢? 高手帮帮忙啊! 协议栈是个什么东西? 请教一个CSOCKET的问题 目睹注册表之怪现状 [诚送60分]何用Java 的socket 来实现服务器和客户端的图象交互传输,急盼!!! 如何让层显示在iframe前面,设置z-index不关用 我要学习.net技术,该从哪下手呀。 如何控制CReBar中toolbar的位置?总是在同一个band上?