itisha-systematix Ответов: 3

Webclient downloaddata () загружается очень медленно


       WebClient web = new WebClient();
       var byt = web.downloaddat(path)

This code download data very slowly even application got stuck or hang.`enter code here.


Что я уже пробовал:

Я установил proxy = null ;
но в первый раз это не сработает, и во второй раз это сработает.

3 Ответов

Рейтинг:
25

Shashank_Systematix

Вот, попробуйте использовать

WebProxy proxy = WebProxy.GetDefaultProxy()
client.Proxy = proxy;


Или в первый раз вы можете переопределить функцию тайм-аута и установить тайм-аут для webclient, при тайм-АУ снова вызовите свою функцию для загрузки данных, это решит вашу проблему, когда она не работает в первый раз.

public class WebClientWithTimeout:WebClient
{
    protected override WebRequest GetWebRequest(Uri address)
    {
        WebRequest wr = base.GetWebRequest(address);
        wr.Timeout = 5000; // timeout in milliseconds (ms)
        return wr;
    }
}


Можете проверить эту ссылку для более подробной информации : C# скачать URL-адрес в строку или файл с таймаутом с помощью WebClient[^]


Рейтинг:
1

Richard MacCutchan

Скорость загрузки-это функция объема данных, скорости вашего соединения, а также скорости локального и удаленного хоста. вы можете попробовать асинхронную загрузку, см. служба WebClient.Метод DownloadData (Строка) (System.Net)[^].


Рейтинг:
0

Jochen Arndt

Если ваше приложение зависает, вы, вероятно, звоните DownloadData из вашего основного потока (GUI) :

Этот метод блокируется при загрузке ресурса. Чтобы загрузить ресурс и продолжить выполнение в ожидании ответа сервера, используйте один из следующих способов: DownloadDataAsync[^] методы.