2013-04-03 67 views
1

我正在研究一个应用程序,用户可以在其中启动在单独线程上产生的“任务”。Thread.Abort可接受的练习?

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

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

Thread.AbortThread.Abort只能在特殊情况下使用,还是可以接受这种事情?

+1

相关:http://stackoverflow.com/q/3632149/158779 – 2013-04-05 02:49:48

回答

2

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

但是,从你的问题我明白,中止线程的唯一原因将是用不同的参数重新启动它。相反,请告知线程参数已更改,并重新使用相同的线程。创建一个新的线程是一个相对昂贵的操作,可以避免你的情况。

+0

thx用于'ThreadAbortException'上的链接,非常有帮助 – 2013-04-04 02:17:51