C#WebClient上传速度

时间:2012-07-30 10:39:23

标签: c# performance upload webclient

我想知道是否有可能在WebClient异步数据上传时增加缓冲区大小,因为目前它推动的最大值为〜320kB / s。

我目前的代码:

using (WebClient Client = new WebClient())
{
    byte[] Buffer = File.ReadAllBytes(this.WorkItem.FileLocation);

    Client.UploadProgressChanged += new UploadProgressChangedEventHandler(Client_UploadProgressChanged);
    Client.UploadDataCompleted += new UploadDataCompletedEventHandler(Client_UploadDataCompleted);
    Client.UploadDataAsync(new Uri("-snip-"), Buffer);
}

修改
连接不是限制因素。 (其300mbit连接,Web服务器推送内容大约为30-40mB / s)

1 个答案:

答案 0 :(得分:3)

如果您想要更好地控制数据的缓冲方式,则需要使用HttpWebRequest类。使用此类,您可以从FileStream中选择读取缓冲区读数,然后选择写入网络流的数量。执行4MB读取和32KB写入是最大化我的网络吞吐量的最佳选择(尽管您必须使用自己的基准测试来查看哪些缓冲区在您的方案中最有效)。