2011-12-13 79 views
2

當我在MSDN上看到線程主題時,我發現如果一個線程被終止了,它不能再次重新啓動,如果我們試圖這樣做,我們會得到一個異常。 Over Here有什麼辦法可以讓我重新啓動一個線程?

我想知道是否有任何方法可以讓我們重新啓動線程來完成相同的工作,MSDN對此是否保持沉默?

謝謝

+0

在java中,你會得到'Executor'框架,它與'tasks'一起工作,並且幫助程序員避免大部分時間管理線程。猜猜,.NET必須有類似的東西。 –

+0

那麼,如果一個線程運行的用戶代碼必須多次執行相同的工作,那麼通常使用一個循環,即。不要讓線程終止。操作系統提供了足夠的機制來讓線程等待更多的工作,(因此ThreadPool是線程等待工作的地方)。 –

回答

3

不,沒有辦法重新啓動線程。另一方面,如果您還記得創建線程時給出的ThreadStartParameterizedThreadStart,則可以使用相同的委託啓動另一個線程。請注意,這將從頭開始再次啓動委託 - 如果您試圖從線程所在的位置「繼續前進」,則需要將該狀態存儲在某處。

我不能說我曾經想過這樣做 - 你的用例是什麼?可能有更好的方法。

+0

你的意思是「如果你試圖從線程所在的地方」繼續前進「,那麼你需要在某個地方存儲該狀態。」以及如何做到這一點? – Bibhu

+0

@Bibhu:那取決於你想要做什麼。例如,如果您正在處理項目列表,則需要將該列表提供給其他代碼,以便知道您有多遠。 –

相關問題