Я создал простое пользовательское консольное приложение для загрузчика .NET 4 и обнаружил, что скорость загрузки, которую я получаю, намного ниже ожидаемой.
Используя методы DownloadFile () или DownloadFileAsync () , скорость, с которой файлы на диске увеличиваются в размере, в лучшем случае составляет одну пятую от той, которая наблюдается при загрузка того же файла с помощью Firefox, вероятно, ближе к одной десятой.
Есть много других вопросов о С.О. о низкой производительности с WebClient, но все они, похоже, зависят от времени соединения, а не от фактической скорости передачи битов после начала передачи. Обычно я загружаю большие файлы (несколько десятков МБ или больше), поэтому важна фактическая скорость передачи файлов. Я установил для свойства Proxy экземпляра WebClient значение null , чтобы повысить скорость соединения, но, как я уже сказал, это не проблема, с которой я все равно сталкиваюсь.
Есть ли очевидная причина для этого? Я знаю, что многие программы работают с несколькими потоками, но я подумал, что это действительно применимо только к одновременной загрузке нескольких файлов. И в любом случае, почему один поток загрузки должен быть ограничен настолько, чтобы пропускная способность была меньше?