2012-07-30 138 views
1

我想知道是否有可能增加WebClient異步數據上傳的緩衝區大小,因爲目前它推動最大〜320kB/s。C#WebClient上傳速度

我當前的代碼:

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)

+0

和你的連接速度是多少? – nothrow 2012-07-30 10:41:45

+0

你確定這不是你的網絡/連接的限制嗎? 0.3Mbps的上行聲音對於很多連接來說是正確的... – 2012-07-30 10:41:55

+0

重新編輯;你在給自己打電話嗎?幾乎任何其他組合可能有其他因素,油門你... – 2012-07-30 10:56:46

回答

3

如果你想更好地控制數據如何緩衝,你需要使用HttpWebRequest類。通過這個類,你可以從FileStream中選擇你的讀緩衝讀數,然後你寫多少網絡流。做4MB讀取和32KB寫入對於最大化我的網絡吞吐量來說是最佳選擇(儘管您必須自己做基準測試,以查看哪種緩衝區在您的方案中效果最佳)。