Thread.Abort可接受的做法?

时间:2013-04-03 19:39:50

标签: c# multithreading

我正在开发一个应用程序,用户可以在一个单独的线程上启动“任务”。

用户很可能会启动此任务,然后每次使用稍微不同的参数重新启动它几次。

我可以使用Thread.Abort,或者我可以重写任务中的代码,以便有多个点可以检查用户是否要重新启动它。

Thread.Abort只应在特殊情况下使用,或者是否可以接受此类事情?

1 个答案:

答案 0 :(得分:2)

如果线程执行需要停止,则检查代码中的特定位置通常是可取的,因为您无法使用Thread.Abort控制代码执行的停止位置。这可能会使应用程序处于某种不确定(可能无效)的状态,具体取决于线程的作用。一个额外的优势是不必处理ThreadAbortException。更多解释here

然而,从你的问题我明白,中止线程的唯一原因是用不同的参数重新启动它。相反,向线程发出参数已更改的信号,并重用相同的线程。创建一个新线程是一项相对昂贵的操作,在您的情况下可以避免。