Я запускаю метод для списка входов;этот список предоставляется пользователем.Если исключение происходит при обработке одного ввода, я должен удалить это из таблицы вывода.Код выглядит примерно так:
List<Task> methodsList = new List<Task>();
for (int i = 0; i < inputList.Count; i++)
{
int arg = i;
Task newTask = Task.Factory.StartNew(() => ProcessInput(i));
methodsList.Add(newTask);
}
if (methodsList.Count != 0)
{
try
{
Task.WaitAll(methodsList.ToArray());
}
catch (AggregateException ex)
{
foreach (Exception innerEx in ex.InnerExceptions)
{
throw innerEx;
}
}
}
Проблема состоит в том, что когда я жду завершения всех задач, AggregatedException не дает мне никакой информации о том, какой поток был сбой.Я думал о том, как справиться с этим, создав коллекцию и добавив в этот список индекс готовых процессов и проверив его в конце, чтобы увидеть, какие входные данные не обработаны, но мне было интересно, есть ли более простой способ сделать это.*