我正在處理一個WPF應用程序,它有幾個線程在後臺處理信息。如果其中一個線程崩潰,它會關閉應用程序。我將通過在try/catch中傳遞給threadstart的函數來糾正這個問題。簡單的後臺線程在.NET中重新啓動
但是,我想知道如果我能做得更好。應該可以編寫一個簡單的函數,如果失敗,它將重新啓動一個線程。甚至可以將一些規則立即嘗試重新啓動,然後延遲後續的重新啓動嘗試,這將非常簡單。基本上,它將作爲單線程的非常基本的服務控制管理器。
注意:通過「重啓」,我的意思是在新線程上再次調用該方法。
這種方法有什麼問題嗎? 在我自己寫這篇文章之前,有沒有我應該評估的現有解決方案?
我只問,因爲這似乎不是一個新問題。
我想我應該注意到,在這種特殊情況下,如果我重新啓動線程,他們很可能不會再次失敗。它們主要是數據收集器,所以當它們重新啓動時,「情況」會發生變化。顯然,崩潰是應該在代碼中修復的問題,但這是針對「異常」的。 – 2009-12-17 18:07:27