c# 用webclient.downloadfile() 下载文件为什么越来越慢 40

我现在用c#做了一个下载多个数据的软件用的是webclient.downloadfile()的方法但是每一次下载的时间都会比上一次的慢dispose我也用了但是还是不解决... 我现在用c# 做了一个下载多个数据的软件 用的是webclient.downloadfile()的方法 但是每一次下载的时间都会比上一次的慢 dispose 我也用了 但是还是不解决问题 请高手们帮帮我
我在每一次下载后都加了 dispose()
这是我的代码
WebClient wc = new WebClient();
public void Download(string Add, string savePath)
{
try{ wc.downloadFile(Add,savePath)}
catch{...}
finallly {wc.dispose();}
}
我在一个loop 里调用这个Download()
我还是个菜鸟请高手指点怎样清理系统缓存和线程池
流我也试过了但是结果还是一样 我觉得是缓存的问题 还有就是关闭程序后界面消失了但是仍然继续运行
展开
 我来答
a5202003
2009-10-30 · TA获得超过2248个赞
知道大有可为答主
回答量:1885
采纳率:75%
帮助的人:576万
展开全部
首先快慢是网络原因。
应该和缓存无关,因为如果从缓存下载,应该更快才对。

其次http速度是越下越慢的,你可以试试下载一个东西,不用迅雷什么的,直接目标另存为,都是越来越慢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
茂林修猪
2009-10-26 · TA获得超过120个赞
知道小有建树答主
回答量:430
采纳率:100%
帮助的人:237万
展开全部
webclient.downloadfile();是一字符数组形式下载数据你

用流的方式试试,我不知道是不是哦这个原因

WebRequest request = WebRequest.Create ("http://www.contoso.com/default.html");
// If required by the server, set the credentials.
request.Credentials = CredentialCache.DefaultCredentials;
// Get the response.
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
// Display the status.
Console.WriteLine (response.StatusDescription);
// Get the stream containing content returned by the server.
Stream dataStream = response.GetResponseStream ();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader (dataStream);
// Read the content.
string responseFromServer = reader.ReadToEnd ();
// Display the content.
Console.WriteLine (responseFromServer);
// Cleanup the streams and the response.
reader.Close ();
dataStream.Close ();
response.Close ();

参考资料: MSDN

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秋水静轩
2015-12-24 · 知道合伙人软件行家
秋水静轩
知道合伙人软件行家
采纳数:206 获赞数:585
就读于西北农林科技大学--信息工程学院--软件工程专业,对软件开发、网页设计有较专业的知识。

向TA提问 私信TA
展开全部
[TestMethod]
public void TestMethod1()
{
System.Net.WebClient wc = new System.Net.WebClient();
wc.DownloadFile("http://api.ragnaroks.org/api/iCao/youku/YouKu.php?targeturl=http://v.youku.com/v_show/id_XOTQyNzkzOTM2.html", @"e:\aaa.html");
}

Http协议默认连接数是2个,可以通过 System.Net.ServicePointManager.DefaultConnectionLimit = 50进行设置
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bdbf4e10d
2009-10-30 · 超过27用户采纳过TA的回答
知道答主
回答量:105
采纳率:0%
帮助的人:0
展开全部
webclient通过tcp传输,网络堵塞的时候tcp自己会放慢速度。

要不你试着用 WebClient.DownloadFileAsync 方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappe8t3L68TSCbzK
2009-10-26 · TA获得超过556个赞
知道小有建树答主
回答量:384
采纳率:0%
帮助的人:213万
展开全部
如果对象都正确调用的话。

你下载多个文件是不是用的多线程呢?

如果用了多线程是怎么用的呢?
委托异步回调?
线程池?
自定义线程对象?

用前两种方式,要保证后台线程及时中止,否则就可能会导致下次线程调用会因为线程池无可用线程而等待。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式