Попытка более эффективно загружать огромное количество файловC#

Место общения программистов C#
Ответить
Anonymous
 Попытка более эффективно загружать огромное количество файлов

Сообщение Anonymous »

Я пытаюсь скачать ок. 45 000 файлов изображений из API.
Файлы изображений имеют размер менее 50 КБ каждый.
С моим кодом это займет 2–3 часа.
Есть ли еще эффективный способ их загрузки на C#?
private static readonly string baseUrl =
"http://url.com/Handlers/Image.ashx?imag ... type=image";
internal static void DownloadAllMissingPictures(List ImagesToDownload,
string imageFolderPath)
{
Parallel.ForEach(Partitioner.Create(0, ImagesToDownload.Count), range =>
{
for (var i = range.Item1; i < range.Item2; i++)
{
string ImageID = ImagesToDownload.ImageId;

using (var webClient = new WebClient())
{
string url = String.Format(baseUrl, ImageID);
string file = String.Format(@"{0}\{1}.jpg", imageFolderPath,
ImagesToDownload.ImageId);

byte[] data = webClient.DownloadData(url);

using (MemoryStream mem = new MemoryStream(data))
{
using (var image = Image.FromStream(mem))
{
image.Save(file, ImageFormat.Jpeg);
}
}
}
}
});
}


Подробнее здесь: https://stackoverflow.com/questions/700 ... fficiently
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»