1

現在、最大で最大320kB / sをプッシュしているため、WebClientAsyncデータのアップロードでバッファサイズを増やすことができるかどうか疑問に思いました。

私の現在のコード:

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);
}

接続の編集
は制限要因ではありません。(300メガビットの接続、Webサーバーはコンテンツを約30〜40メガバイト/秒のマークでプッシュします)

4

1 に答える 1

3

データのバッファリング方法をより細かく制御したい場合は、HttpWebRequestクラスを使用する必要があります。このクラスを使用すると、から読み取りバッファを選択してFileStreamから、ネットワークストリームに書き込む量を選択できます。ネットワークスループットを最大化するには、4MBの読み取りと32KBの書き込みを行うのが最適でした(ただし、シナリオでどのバッファーが最適に機能するかを確認するには、独自のベンチマークを実行する必要があります)。

于 2012-10-08T04:00:23.027 に答える