我正在寫使用的HttpWebRequest上傳大文件到Web服務的應用萎縮緩衝。發送大文件,HttpWebRequest的,成長/根據需要
這個應用程序將通過不同的人有各種互聯網的速度運行。
我異步讀取數據塊文件,並異步寫入這些數據塊的請求流。我使用回調在循環中執行此操作。我一直這樣做直到整個文件被髮送。
被寫入之間算出的上載的速度和GUI隨後更新以顯示所述速度。
我面臨的問題是決定緩衝區大小。如果我設置得太大,連接速度慢的用戶將無法看到頻繁更新的速度。如果我做得太小,連接快速的用戶最終會「敲擊」讀/寫方法,導致CPU使用率激增。
我現在正在做的是在128kb開始緩衝區關閉,然後每10次寫入一次,我檢查這10次寫入的平均寫入速度,如果不到一秒鐘,我將緩衝區大小增加128kb。如果寫入速度低於5秒,我也會以類似的方式縮小緩衝區。
這工作得很好,但是這一切都感覺很隨意,它好像有改進的餘地。我的問題是,有沒有人處理過類似的情況,你採取了什麼行動?
謝謝
這似乎是一個非常可靠的方法。它也起作用。我不會改變它。 – zmbq