多线程下载同一个文件 c# async await

时间:2022-10-21 12:34:32
【文件属性】:

文件名称:多线程下载同一个文件 c# async await

文件大小:960KB

文件格式:RAR

更新时间:2022-10-21 12:34:32

.net core 3 多线程 多任务

参照asp.net 上的教程《如何:使用 Task.WhenAll 扩展异步演练 (C#)》,使用了async/await以后,感觉怪怪的。 使用nginx作为服务器,对每个连接限制速度50K。 然同时开启了10个任务进行分段下载(HTTP 1.1支持下载文件的指定部分),以500K的速度完成了下载^-^,最后把10个临时文件合并起来。不过这个年代估计下载速度已经不是瓶颈了。。。。。 本来想不使用临时文件的。原计划先生成一个和下载目标同名,同大小的空文件,在下载的同时用filestream 的seek把下载到的各个字节填写进去,可惜总是数据不完整。对async这个模型还不了解。 没办法才用了临时文件这个办法。有懂的就留言告诉我吧,谢谢!^-^ 环境是vs2019 .net core 3 nginx 只用最落后的IE的原始下载工具才会单线程下载(这样才能看到被限制用50K下载速度的效果)...............除外基本浏览器下载工具都自带多线程下载了。......................... 代码都在program.cs里面,非常简单。 虽然是.core 3 ,其实用的都是framework 的api,估计也是通用的。


【文件预览】:
新建文件夹
----项目属性.jpg(167KB)
----单线程50K下载.png(56KB)
----HttpDownloader()
--------.vs()
--------HttpDownloader()
--------HttpDownloader.sln(1KB)
----架设测试环境 在nginx html 目录下放一些下载测试的文件.png(274KB)
----nginx设置.png(124KB)
----10任务下载500K.png(139KB)

网友评论