日期:2014-05-17  浏览次数:20819 次

关于多线程的中止
问题是这样的,
1.我new了一个线程,在这个线程的方法里面又生成了很多新的线程。
那么我关闭线程的话,是否需要关闭第一线程就可以了?
2.假设关闭成功,哪里子线程里面如果有正在执行的程序是否也会被强制中断?
多线程 c#

------解决方案--------------------
线程之间是相对独立的
就像你去吃饭时,打电话叫你大老婆去帮订订家酒店,小老婆去订张机票一样。是相对独立的事情,只要你没有再打电话叫她们别去了(Thread.Abort),你的饭吃没吃完都不会影响她们
所以
1.否
2.否
结束有几种情况:
a 线程执行完,正常结束(ThreadState变为Stopped)
b 线程抛异常,意外结束(某些程序中可能会导致内存泄漏或崩溃)
c 调用Thread.Abort强行结束,不建议使用

另外,需要注意的是,一个程序运行的线程包含前台和后台两种,当所有的前台线程都结束了,程序将直接结束(无视后台线程)
http://www.cnblogs.com/zfanlong1314/archive/2012/02/26/2390455.html