我正在研究一個應用程序,用戶可以在其中啓動在單獨線程上產生的「任務」。Thread.Abort可接受的練習?
用戶很可能會啓動此任務,然後每次重新啓動它幾次,參數稍有不同。
我可以使用Thread.Abort
,或者我可以重寫任務中的代碼,以便在任務檢查用戶是否想要重新啓動它時有很多點。
Thread.Abort
Thread.Abort
只能在特殊情況下使用,還是可以接受這種事情?
我正在研究一個應用程序,用戶可以在其中啓動在單獨線程上產生的「任務」。Thread.Abort可接受的練習?
用戶很可能會啓動此任務,然後每次重新啓動它幾次,參數稍有不同。
我可以使用Thread.Abort
,或者我可以重寫任務中的代碼,以便在任務檢查用戶是否想要重新啓動它時有很多點。
Thread.Abort
Thread.Abort
只能在特殊情況下使用,還是可以接受這種事情?
如果線程執行需要停止,檢查代碼中的特定位置通常會更可取,因爲您無法控制代碼執行中使用Thread.Abort
停止的位置。這可能會使應用程序處於某種不確定(可能無效)狀態,具體取決於線程的功能。另一個好處是不必處理ThreadAbortException
。更多解釋here。
但是,從你的問題我明白,中止線程的唯一原因將是用不同的參數重新啓動它。相反,請告知線程參數已更改,並重新使用相同的線程。創建一個新的線程是一個相對昂貴的操作,可以避免你的情況。
thx用於'ThreadAbortException'上的鏈接,非常有幫助 – 2013-04-04 02:17:51
相關:http://stackoverflow.com/q/3632149/158779 – 2013-04-05 02:49:48