2012-01-03 79 views
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 = nullwc.Proxy = GlobalProxySelection.GetEmptyWebProxy()WebProxy.GetDefaultProxy()wc.Proxy = new WebProxy()。结果,我的下载速度一直很低。

关闭“自动检测设置”关于“控制面板” /“Internet选项” - >连接选项卡 - > LAN设置也没有提高下载速度。

回答

0
IWebProxy proxy = GlobalProxySelection.GetEmptyWebProxy(); 
wc.Proxy = proxy; 
相关问题