我有一個點網絡Windows應用程序,它將大文件上傳到Intranet網站。雖然上傳工作正常,但我還想知道上傳的進度。使用HttpWebRequest的異步上傳
我看到webRequest.GetResponse()是需要時間的行。該控件幾乎立即從GetRequestStream中出來,我認爲這是本地發生的,不需要服務器連接。
using (var reqStream = webRequest.GetRequestStream())
{
reqStream.Write(tempBuffer, 0, tempBuffer.Length);
}
我試着將它轉換爲一個異步調用,但它也採取相同的時間來達到RespCallback方法。
IAsyncResult result = (IAsyncResult)webRequest.BeginGetResponse(new AsyncCallback(RespCallback), requestState);
private void RespCallback(IAsyncResult asyncResult)
{
WebRequestState reqState = ((WebRequestState)(asyncResult.AsyncState));
}
我想追蹤發送到服務器的字節,以顯示進度條。我怎樣才能做到這一點?
@ Joshua-'Cuppers'-Whittle。我不得不重寫很多我的代碼,但WebClient似乎是一個好方法。我不確定這是否是一種好方法,儘管WebClient有一個已知的問題,沒有正確更新進度。 [鏈接](http://stackoverflow.com/questions/4768419/webclient-uploadvaluesasync-not-updating-progress-properly) – 2011-04-06 12:39:09