【发布时间】:2015-05-02 09:00:07
【问题描述】:
var h = (HttpWebRequest)WebRequest.Create(url);
using (var hr = (HttpWebResponse)(await h.GetResponseAsync()))
{
using (var s = hr.GetResponseStream())
{
using (var f = new FileStream(saveTo, FileMode.Create, FileAccess.Write, FileShare.None))
{
int bytesCount = 0;
byte[] buf = new byte[2048]; //<------------------------------
while ((bytesCount = await s.ReadAsync(buf, 0, buf.Length)) > 0)
{
await f.WriteAsync(buf, 0, bytesSize);
// Update UI : downloaded size, percent,...
}
}
}
}
我正在编写一个下载器支持更新 UI(可观察千项项目 - 批量下载),当下载进度更改并恢复下载但不支持多段下载(因为每个项目的大小通常 我运行大约 5-20 次下载并发。什么缓冲区大小适合这种情况(对 UI 更新和下载都有好处)?
【问题讨论】:
标签: c# httpwebrequest size buffer