c# 用webclient.downloadfile() 下载文件为什么越来越慢
发布网友
发布时间:2022-05-12 04:25
我来回答
共5个回答
热心网友
时间:2023-08-04 20:52
首先快慢是网络原因。
应该和缓存无关,因为如果从缓存下载,应该更快才对。
其次http速度是越下越慢的,你可以试试下载一个东西,不用迅雷什么的,直接目标另存为,都是越来越慢
热心网友
时间:2023-08-04 20:53
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
热心网友
时间:2023-08-04 20:53
[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进行设置
热心网友
时间:2023-08-04 20:54
webclient通过tcp传输,网络堵塞的时候tcp自己会放慢速度。
要不你试着用 WebClient.DownloadFileAsync 方法
热心网友
时间:2023-08-04 20:54
如果对象都正确调用的话。
你下载多个文件是不是用的多线程呢?
如果用了多线程是怎么用的呢?
委托异步回调?
线程池?
自定义线程对象?
用前两种方式,要保证后台线程及时中止,否则就可能会导致下次线程调用会因为线程池无可用线程而等待。