2013-07-23 69 views
-2

我目前有一個控制檯應用程序,它基本上做了一個無限循環,並做webrequest。多線程控制檯應用程序問題c#

但我想知道什麼多線程庫會對此有好處。

所以目前它做了一個循環獲取Web請求,然後在Mongo數據庫中填充結果。這必須爲每個請求完成。

位堅持哪種方法將是理想的?

任何建議都會很好。

感謝

+0

System.Threading.Thread是一個不錯的選擇。 –

+3

@HanletEscaño:不;它不是。使用TPL。 – SLaks

+0

你實際上想要異步,而不是線程。 – SLaks

回答

1

你可以只使用Parallel.ForEach,可能設置的最大線程數,並在你的整個集合運行操作。

請注意,多線程將要求您同步對共享數據的訪問。

這就是說,在這種情況下,大部分時間都在等待IO。因此,使用異步方法調用可能比線程化操作更好,因爲線程只會不必要地阻塞多個線程。 MSDN有一個不錯的Walkthrough on Accessing the Web using Async and Await可以轉換爲您的使用。

+0

乾杯會看看那個。當我嘗試使用並行時,由於網絡請求和響應未完成而導致問題。但會看看鏈接。 – tjhack