Как бросить исключение из петли Parallel.foreach?C#

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

Сообщение Anonymous »

У меня есть параллель.foreach цикл, который загружает файлы, как SO:

Код: Выделить всё

try
{
var parallelOptions = new ParallelOptions();
parallelOptions.MaxDegreeOfParallelism = 8;
int failedFiles = 0;
Parallel.ForEach(FilesToDownload, parallelOptions, tile =>
{
bool downloaded = DownloadTile(File);
if (downloaded)
{
//Downloaded :)
}
else
{
failedFiles++;
if (failedFiles > 10)
{
throw new Exception("10 Files Failed to download. Failing download");
}
}
parallelOptions.CancellationToken.ThrowIfCancellationRequested();
});
}
catch (Exception ex)
{
throw; //This throws it up to a main method that cancels my program
}
И мне было интересно, как правильный способ бросить исключение из метода parallel.foreach ? В моем случае я думаю, что я увижу исключение, которое брошено в 8 раз, как только первое исключение брошено.>

Подробнее здесь: https://stackoverflow.com/questions/306 ... reach-loop
Ответить

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

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

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

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

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