我需要將大約200個HTTP請求並行發送到不同的服務器並獲得響應。 我在C#中使用HttpWebRequest類。 但是,當並行處理請求時,我看不到良好的時間增強。 例如,如果一個請求需要3秒獲得響應,2個請求並行 - 6秒,3個請求 - 8秒,4個請求 - 11秒... 這不好,我希望應該有最好的時間,大約10秒爲200個請求。 看起來好像只有2-3個請求並行執行,但超時在WebRequest對象創建後立即開始。 我試過設置DefaultConnectionLimit
和MaxServicePoints
值,但是id沒有幫助。正如我理解這些參數的並行請求數量的一個網站。我需要請求到不同的網站。C#中的多個HTTP請求
ArrayList a = new ArrayList(150);
for (i = 50; i < 250; i++)
{
a.Add("http://207.242.7." + i.ToString() + "/");
}
for (i = 0; i < a.Count; i++)
{
Thread t = new Thread(new ParameterizedThreadStart(performRequest));
t.Start(a[i]);
}
static void performRequest(object ip)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create((stirng)ip);
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
}
Сan有人曾經遇到這樣一個問題:
,我用它來測試代碼的例子嗎? 謝謝你的任何建議。
我自己也有類似的問題,似乎WebRequest.Create()出於某種原因重用了相同的TCP連接。我想知道你的問題的答案是什麼? – ala 2011-10-19 01:20:35