2
我已經寫了一些調用方法的代碼webClient.DownloadString。當我運行我的程序分析器顯示此方法在程序中佔用了98%的時間(不是處理器時間),並且下載速度太慢(約爲最大下載速度的10%)。沒有代理的情況下下載速度很低
當我運行程序提琴手下載速度增加到最大下載速度的75% - 90%。
我的錯誤在哪裏?以及如何提高我的應用程序的下載速度?
這是我的代碼。
WebClient wc = new WebClient();
wc.Encoding = Encoding.GetEncoding("1251");
wc.Proxy = null;
HtmlDocument html = new HtmlDocument();
html.LoadHtml(wc.DownloadString("http://some-site.com/" + htmlUrl));
var c1 = html.GetElementbyId("content");
foreach (var c2 in c1.ChildNodes.Where(c => c.Name == "div"))
{
foreach (var c3 in c2.ChildNodes.Where(c => c.Name == "a"))
{
var leftIndex = c3.InnerText.IndexOf('(');
var rightIndex = c3.InnerText.LastIndexOf(')');
var id = c3.InnerText.Substring(0, leftIndex - 1).Replace(" ", "");
var name = c3.InnerText.Substring(leftIndex + 1, rightIndex - leftIndex - 1);
SaveInDB(int.Parse(id), name);
}
}
我曾在多個線程運行它來提高下載速度。
而且我試圖使用其他變體wc.Proxy = null
或wc.Proxy = GlobalProxySelection.GetEmptyWebProxy()
或WebProxy.GetDefaultProxy()
或wc.Proxy = new WebProxy()
。結果,我的下載速度一直很低。
關閉「自動檢測設置」關於「控制面板」 /「Internet選項」 - >連接選項卡 - > LAN設置也沒有提高下載速度。