Как реализовать асинхронную очередь загрузки с параллельным foreachC#

Место общения программистов C#
Ответить
Anonymous
 Как реализовать асинхронную очередь загрузки с параллельным foreach

Сообщение Anonymous »

Я хочу попробовать что-то вроде загрузки из коллекции изображений как минимум в трех одновременных загрузках, но как только одна из трех загрузок завершится, добавьте новую загрузку из списка или мне придется подождать, чтобы добавить новую загрузку, пока не загрузится. завершено с 3-х одновременных загрузок. Как мне реализовать что-то подобное?

До сих пор я пробовал это, но, похоже, он загружает все, не дожидаясь завершения хотя бы 1 из 3 одновременных загрузок. .

List listOfLink = new List();

await Task.Run(() =>
Parallel.ForEach(listOfLink, new ParallelOptions { MaxDegreeOfParallelism = 3 }, async (link, state, index) =>
{
//Download image httpclient
//DownloadImageAsync(link);
}));


Подробнее здесь: https://stackoverflow.com/questions/617 ... el-foreach
Ответить

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

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

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

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

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