簡體   English   中英

使用C#的進度和速度下載/上傳最有效/准確的方式?

[英]Most efficient/accurate way to download/upload with progress and speed in C#?

上傳和下載文件非常簡單。 在顯示進度和傳輸速率時這樣做讓我質疑最佳方法。 我正在尋找那種完美的方式。 該方法易於使用,准確,重量輕。 試過並且是真實的。

我正在談論的情況是,例如,從WebResponse或其他一些基於流的傳輸下載文件。 下載它就像(4.0這里)一樣簡單:

HttpWebResponse response = request.GetResponse() as HttpWebResponse;
Stream bufferedresponse = new BufferedStream(response.GetResponseStream());
bufferedresponse.CopyTo(TargetStream);
bufferedresponse.Close();

在完成下載之前,您無法找到傳輸速率,即使這只是一個平均值。 我想的是一瞬間的觸摸。 我並不總是需要一個完整的WebBrowser對象,特別是在REST API包裝器中(這個特定的示例來自),此外,WebBrowser是否也嘗試解析DOM並呈現它的內容?

是否有綁定技術或簡單的多線程方法? 我忽略了流類的屬性/事件嗎? 完全是另一類?

您需要創建一個“ObservableStream”,它將通過遞增進度條和更新遙測來觸發您可以處理的可訂閱事件。

使用Reactive Extensions庫嘗試此實現: http//staceyw.posterous.com/observe-a-network-stream-using-rx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM