2013-09-26 56 views

回答

12

當然,你可以這樣做:

Thread.CurrentThread.Abort(); 

按理說中止當前線程是唯一一種中止那是安全的,因爲它是你真的瞭解在它在做什麼方面的唯一線索。例如,這就是HttpResponse.End所做的。

這不是我通常會建議 - 基本上,它的完成,因爲除非你明確地調用Thread.ResetAbort,該ThreadAbortException將沿着調用堆棧無論catch塊的 - 這是一種在這個意義上「尤伯杯異常」的。

+1

好的,我知道它是安全的。我仍然會鄙視任何使用此代碼的代碼。有點像在有其他更清潔的做事方式時看到「goto」。實際上,我稱'Thread.Abort'爲多線程編程的'goto'。「我不是100%反對在這裏使用「Abort」,就像我不是100%反對使用goto一樣。但是。 。 。 –

+0

@JimMischel:是的,它非常嚴酷 - 但至少比放棄一個*不同的線程更好。將進行編輯以清楚表明這不是推薦的策略。 –