日期:2014-05-18  浏览次数:20761 次

关于Abort线程时会报出“正在中止线程”的异常
我的上位机控制程序里有很多线程,当我点击按钮,终止线程时,在抓异常的地方,有时会报出“正在中止线程”的错误,但不是每次都这样,把抓异常的地方注释掉,又不会造成软件崩溃,请问为什么会出现这样的问题,出现这个问题的原因一般是什么?

------解决方案--------------------
Thread.Abort() 就是固定会抛这个异常,查查MSDN就知道了。

可以无视。当然一般是不建议直接用 Abort 的,因为有可能在你Thread会有些非托管资源没有释放而导致内存泄露。
------解决方案--------------------
private Boolean _bStopThread = false;

private void FormMain_Load(object sender, EventArgs e)
{
ThreadPool.QueueUserWorkItem(new WaitCallback(Foo), null);
}

private void Foo(Object o)
{
while (!_bStopThread)
{
Thread.Sleep(1);
}
}