繁体   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