如何在C#中使用多线程下载单个文件

Riz*_*han 6 c# multithreading

我想在C#中使用Multi-Threads下载单个文件.例如:Thread1开始从1%下载到40%.Thread2开始从41%下载到70%.Thread3从71%开始下载到100%

请给我一些代码.提前致谢

zmi*_*jko 4

如何使用 HttpRequest 类并调用 AddRange 方法。这应该是一个带有偏移量的标头,从该标头开始下载。

\n\n
    var request = HttpWebRequest.Create(new Uri("http://www.myurl.com/hugefile"));\n\n    request.Method = "GET";\n    request.AddRange(offset_for_this_thread);  // I assume you have calculated this\n                                               // before firing threads\n    Stream reponseStream = request.GetResponse().GetResponseStream();\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后,您可以从 \xc2\xb4responseStream\xc2\xb4 读取数据,并在完成后将其与其他线程合并。

\n\n

然而,正如其他人所注意到的,只有当您有两个适配器,都连接到互联网,并且这些适配器之间有某种带宽平衡时,这才会带来价值……否则 Windows 可能会将所有内容转移到同一个连接。

\n