2
我正在寫一個小的桌面客戶端下載的文件列表, 我使用的是單獨的任務爲每個下載的,當我在我的系統中運行它始終運行最多2個並行下載。我正在使用64位操作系統的Core i7處理器如何增加在C#中的並行任務的數量
有沒有什麼辦法可以強制增加我的並行下載(即MinimumDegreeOfParallelism
就像),還是有其他方法可以實現它,我至少需要4個文件並行下載。
我正在寫一個小的桌面客戶端下載的文件列表, 我使用的是單獨的任務爲每個下載的,當我在我的系統中運行它始終運行最多2個並行下載。我正在使用64位操作系統的Core i7處理器如何增加在C#中的並行任務的數量
有沒有什麼辦法可以強制增加我的並行下載(即MinimumDegreeOfParallelism
就像),還是有其他方法可以實現它,我至少需要4個文件並行下載。
並行下載的數量可能不受併發線程數的限制,而是受應用程序併發連接數的限制,默認限制爲2. 您可以通過修改ServicePointManager.DefaultConnectionLimit
來更改此值屬性,例如:
ServicePointManager.DefaultConnectionLimit = 100;
感謝@Adi萊斯特爲響應 – Mathiyazhagan
只是古玩更多地瞭解任務,如果我把我的ServiceManager.DefaultConnectionLimit爲1,我開始申請兩個或兩個以上的任務。現在無論是任務的起步,並下載從任務1只發生了,當我調試,看到任務的狀態屬性(包括任務1和任務2是處於運行狀態),但任務2是我不」既不丟錯誤沒有額外的連接,並且在連接可用之前都沒有下載。那麼這個Task2的狀態是什麼? (不會進入睡眠模式或輪詢獲取連接) – Mathiyazhagan
@Mathiyazhagan Task2正在運行,但會阻塞,直到連接可用。在這段時間內是否會產生CPU時間給其他線程取決於.NET的實現,這是我不知道的。 –