Как бросить исключение из петли 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

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