1.是,但线程池中的线程不一定是
2.是,但线程中有一定几率通过ResetAbort恢复(catch ThreadAbortException)
回复?可以吧结束的线程回复吗?
@一路向前而已: Abort只是在线程执行中插入一个特殊的ThreadAbortException,可以通过线程对应的委托方法catch到后去resetabort取消abort。Abort可不是说要abort就能abort掉的,有些特殊的代码是无法abort掉的,比如CriticalSection对应的代码块
@Daniel Cai: 有点糊涂了 你说的这个resetabort方法是自己用try catch捕捉后在catch块加入的?
@一路向前而已:
var td=new Thread(()=>{
bool flag=true;
while(flag)
{
try{
Thread.Sleep(100);
}
catch(ThreadAbortException)
{
Thread.ResetAbort();
flag=false;
}
}
Console.WriteLine ("abort reset");
});
td.Start();
Thread.Sleep(1000);
td.Abort();
@Daniel Cai: 恩 这样就释放不了了
@一路向前而已: 这个最后线程执行完了会被回收掉啊。
@Daniel Cai: 你QQ多少 能加一下 吗?