【经验分享】WebClient/C#/.net如何提高文件下载速度
在使用.net平台时,经常要用到远程下载文件或者请求网页之类的操作。而下载或者请求网页最简单有效的方法是使用WebClient。这几天因为用到这个,我就多次测试,发现使用多线程下载的话,速度也没提高上来。而在网上找了好一会也没找到满意的答案,最终咱还是找到解决方案了。
原来WebClient在下载资源或者请求网页时,默认限制了最大连接数是2。也就是说您无论开多少线程系统也只分配两个连接给你下载。问题找到后,那解决也就变得容易了,只要在下载之前,将最大连接数改大就行。也就是在C#里,执行一段代码:
ServicePointManager.DefaultConnectionLimit = 512; // 这里我随便改了一个大点儿的数字,就可以了
接下来我测试了一下,我在2M的带宽下下载图片文件,速度达到了200K以上,算是比较理想的下载速度了,而且这种下载方式对带宽影响不大,这么大的下载速度下,上网浏览网页也不怎么卡。