HttpClient是否有默認并發數限制?
在.Net 4.0之前,一直是依靠HttpWebRequest實現Http操作的。
它默認有一個非常保守的同一站點下最大2并發數限制,導致默認情況下HttpWebRequest往往得不到理想的速度(估計這個策略郁悶了不少碼農),必須修改App.config或ServicePointManager.DefaultConnectionLimit的值。 MS在.Net 4.5中引入了一個HttpClient類專門處理Http操作,本來我以為HttpClient和HttpWebRequest遵循一樣的策略的。今天在寫一個多線程下載的程序的時候,用到了10個并發連接,發現在默認的情況下,HttpClient并沒有并發數限制。 最初我以為是.Net 4.5取消了這個并發數限制(畢竟現在基本上沒有誰遵循這個標準了),然后用WebRequest重寫了相關代碼,發現依然是2并發上限,并且ServicePointManager.DefaultConnectionLimit的值也是2。也就是說:HttpClient不受HttpWebRequest并發策略控制,也沒有系統級的并發限制。 另外,測試的時候發現,HttpWebRequest默認也不是對所有地址都2并發上限的。例如,對本地的http地址連接(http localhost/*)就沒有并發限制。下一篇編程到底難在哪里