我有一個方法void DoWork(object input)
需要大約5秒鐘才能完成。我已經閱讀Thread
比ThreadPool
更適合這些較長的操作,但我遇到了問題。主題:如何在線程完成後重新啓動?
我點擊一個按鈕,它調用threadRun.Start(input)
它運行並完成罰款。我再次點擊按鈕,收到以下異常:
Thread is running or terminated; it cannot restart.
你能不能「再利用」主題?我應該使用ThreadPool嗎?與ThreadPool相比,Thread爲什麼「更適合更長時間的操作」?如果你不能重用一個線程,爲什麼要使用它(即它提供了什麼優點)?
我剛剛查了我的一些代碼,每次我重新創建線程我需要重用它。我這樣做是因爲我的代碼中也出現了完全相同的錯誤。在我的情況下,這樣做並不昂貴,所以我沒有進一步調查。 – ChrisF 2012-03-07 22:41:48
對於螺紋VS線程池檢查此[計算器帖] [1] [1]:http://stackoverflow.com/questions/230003/thread-vs-threadpool – 2012-03-07 22:45:51