怎么强制结束一个程序下的所有子线程

如何强制结束一个程序下的所有子线程?
如何强制结束一个程序下的所有子线程?

我的程序开启了很多子线程,但是可能是做得不好,每次关闭程序的时候都回发生内存访问非法操作,我怀疑这是子线程没有被彻底关闭。所以我想在程序结束的时候强制结束所有子线程,而不检查它们的状态,请问这有无可能?

------解决方案--------------------
TerminateThread,不过不建议使用。
内在非法访问可能是一个线程还没停的时候,用到的东西被释放了吧。
------解决方案--------------------
设置结束标志通知每个线程,然后,等待线程结束,用MsgWaitForMutilObjects
------解决方案--------------------
结束的时候,给每个子线程发送退出消息,并且检测每一个子线程的状态,确认每个子线程都退出,如果在规定的时间还没有退出,就TerminateThread吧
------解决方案--------------------
每次关闭程序的时候都回发生内存访问非法操作,我怀疑这是子线程没有被彻底关闭。
---------------------------

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