2011-05-25 53 views
0

如果有任何多線程的c#實用程序,那麼我對這個概念有點不瞭解。但如果遇到下面的情況呢? 超出運行線程1000,如果一個或多個線程在執行過程中失敗,那麼計劃如何恢復?或者有什麼方法可以在我失敗時從當前狀態重新啓動它?需要關於c#中多線程應用程序的指導。

+1

它**取決於你的情況?你的線程是如何實現的等等......你需要更具體的方法**來回答這個問題! – 2011-05-25 14:29:21

+0

你應該使用'ThreadPool'類或相當的 – 2011-05-25 14:31:39

回答

1

你的問題不太清楚,不過這裏一些想法:

  • 它通常是一個非常糟糕的主意產卵1000個線程內存消耗和應用性能方面。請考慮使用ThreadPool或任務並行庫。
  • 如果在一個線程中拋出異常,並且線程不處理該異常,您的應用程序將崩潰。如果你想集中管理這種情況,你可以附加到事件Application.ThreadException來處理這種情況。在關閉應用程序之前向用戶顯示某種抱歉消息。
+0

我確定它在catch塊中遇到異常。但我怎麼能繼續線程從它的當前狀態,同時解決其他線程不應該得到影響。什麼是補救措施......那麼這意味着在catch塊我需要通過它的身份,當前狀態調用線程?如果是的話,我們怎麼能存儲它的當前狀態? – 2011-05-25 14:45:40

+0

嗯,這真的取決於情況。如果異常不重要,你可能會抓住併吞下它。但是不應該使用異常來控制程序流程。然而,這個問題是封閉的,所以爲了獲得有意義的答案,你應該創建一個新的,更具體的問題。 – 2011-05-25 21:04:04