1

我想知道是否可以在 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 连接,网络服务器以 ~30-40mB/s 的速度推送内容)

4

1 回答 1

3

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

于 2012-10-08T04:00:23.027 回答