C# 在.Net中从internet下载文件的最快方法是什么?

C# 在.Net中从internet下载文件的最快方法是什么?,c#,.net,vb.net,C#,.net,Vb.net,我正在写一个应用程序,需要从互联网上下载几个页面。页面本身并没有那么大,但是,这需要非常长的时间。我目前正在使用WebClient.DownloadDataAsync。我曾尝试在NetBalancer中为应用程序赋予高优先级,但没有成功。在.Net中不使用外部库从internet下载文件的最快方法是什么?尝试同步运行 void Main() { var remotefile = "http://cdn.sstatic.net/stackexchange/img/logos/so/so-l

我正在写一个应用程序,需要从互联网上下载几个页面。页面本身并没有那么大,但是,这需要非常长的时间。我目前正在使用WebClient.DownloadDataAsync。我曾尝试在NetBalancer中为应用程序赋予高优先级,但没有成功。在.Net中不使用外部库从internet下载文件的最快方法是什么?

尝试同步运行

void Main()
{
    var remotefile = "http://cdn.sstatic.net/stackexchange/img/logos/so/so-logo.png";
    var localfile = @"c:\temp\logo.png";
    using(WebClient wc = new WebClient())
        wc.DownloadFile(remotefile,localfile);
}

问题不是什么是最快的方法。除非页面非常大或连接速度非常慢,否则任何内容都不会以5分钟/页的速度下载。您需要确定是哪部分代码导致了速度缓慢

也许一个简单的计时器会有帮助:

Dim viStart As Long = Now.Ticks
'...
'...
'...
Dim viEnd As Long = Now.Ticks - viStart

把它们放在代码的不同部分,看看哪一个会减慢整个过程。然后在这里发布您的问题。

瓶颈是什么?通常通过网络传输数据是操作中最慢的部分,没有多少代码可以解决这个问题。我不知道瓶颈是什么。我有一个进度条,记录下载完成的次数,每一次最多需要5分钟。同样,这些文件相对较小。没有什么可以证明5分钟是合理的。也许你应该试着找出瓶颈。我试着检查了NetBalancer,结果显示没有数据被下载或上传,只有不到一秒的时间,上传速率是200字节/秒。正如我所说,我使用的是DownloadDataAsync。但是,事件处理程序正在主线程中运行。我应该为事件处理程序创建一个单独的线程吗?我建议同步运行它,只是为了简化我想的事情。如果代码真的这么简单,我建议让人参与检查从端到端的路线。谢谢你帮我找出瓶颈。显然,解析是真正的问题,占用了大部分时间。我不知道解析XML会花这么长时间。哦,好吧。