[英]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.