我有以下場景:如何管理多線程c#應用程序
C#應用程序(.net 4.0/4.5),具有5-6個不同的線程。每個線程都有不同的任務,每隔x秒發起一次(範圍從5到300)。
每個任務有以下步驟:
- 從SQL Server獲取項目
- 轉換項目以JSON
- 將數據發送到web服務器
- 等待來自服務器的答覆。
由於此任務可能會在某些時候失敗(互聯網問題,超時等)什麼是.NET世界的最佳解決方案?
我想到了以下解決方案:
- 產生新的線程每x秒(如果沒有這種類型的執行的另一個線程)
- 產卵一個線程爲每種類型的任務和循環步驟每x秒(瞭解管理例外的方式)
哪個更安全可靠?應用程序將運行在無人值守的系統上,因此它應該能夠保持執行,而不管任何可能的例外。
我的第一個問題是要真正確定多線程是否真的有必要,因爲它確實增加了進入的重大障礙和可維護性問題。 Percieved性能提升幾乎從來沒有。如果您使用多線程來提供響應式用戶界面,則應首先考慮異步/等待,這會降低複雜性。 –
我認爲[TPL Dataflow](http://msdn.microsoft.com/en-us/library/hh228603(v = vs.110).aspx)是正確的工具。在這裏有一些很好的例子。 – Noseratio