3 回答
TA贡献1815条经验 获得超10个赞
您可以通过这种方式立即杀死它:
private Thread _myThread = new Thread(SomeThreadMethod);
private void SomeThreadMethod()
{
// do whatever you want
}
[SecurityPermissionAttribute(SecurityAction.Demand, ControlThread = true)]
private void KillTheThread()
{
_myThread.Abort();
}
我一直使用它并为我工作:)
TA贡献1845条经验 获得超8个赞
首先,您应该具有一些同意的结束线程的方法。例如,线程可以检查并遵守的running_ valiable。
您的主线程代码应该包装在一个异常块中,该异常块同时捕获ThreadInterruptException和ThreadAbortException,这将在退出时彻底整理线程。
如果是ThreadInterruptException,则可以检查running_变量以查看是否应该继续。如果是ThreadAbortException,则应立即整理并退出线程过程。
试图停止线程的代码应执行以下操作:
running_ = false;
threadInstance_.Interrupt();
if(!threadInstance_.Join(2000)) { // or an agreed resonable time
threadInstance_.Abort();
}
- 3 回答
- 0 关注
- 1322 浏览
添加回答
举报