C#:下载速度的区别

C#: Difference between downloading speed

我正在使用控制台应用程序从远程磁盘下载文件 StreamReader:

using (StreamReader sr = new StreamReader(new FileStream(sourcePath), 
FileMode.Open, FileAccess.Read), Encoding.GetEncoding(1251), true)
{
    while (!sr.EndOfStream)
    {
        sr.ReadLine();
    }
}

一切都很好,但是当我通过 OS 文件系统接口下载相同文件时,速度比 StreamReader.

快得多

谁能解释一下如何提高 StreamReader 的下载速度?

看来加快下载速度的唯一方法是增加缓冲区大小 - 缓冲区越大,速度越快:

using (StreamReader sr = new StreamReader(sourcePath, Encoding.GetEncoding(1251), true, 8 * 1024 * 1024)
{
    while (!sr.EndOfStream)
    {
        sr.ReadLine();
    }
}