С помощью TPL у меня есть несколько заданий (динамически создается, может быть большое число), каждый возвращает bool, я хочу проверить, истинны ли все возвращаемые значения задачи. как бы я это сделал? Является ли это возможным? если нет, можно ли передать общий объект каждой задаче и обновить этот объект?Как вы оцениваете результат нескольких задач
EDIT: Это будет пример моей задачи. ProcessEntity возвращает bool. Теперь у меня есть несколько заданий, которые были созданы и выполнены. Мне нужно проверить, что все результаты верны.
private Task<bool> CreateTask(MyEntity entity, Action onStart, Action onComplete)
{
return (new Task<bool>(
() =>
{
onStart.Invoke();
var result = false;
try
{
result = ProcessEntity(myEntity);
}
catch (Exception ex)
{
}
onComplete.Invoke();
return result;
})
);
}
for (int i = 0; i < counter; i++)
{
CreateTask(entities[i],() => _taskCounter++,() => _taskCounter--).Start();
}
Итак, в этот момент мне нужно продолжить выполнение другого кода, и это должно произойти только в том случае, если все задачи вернулись.
Все это возможно. Если бы вы показали нам свой код и то, что вы пробовали, что не сработало, было бы легче помочь. –
Возможный дубликат [Ограничить количество задач с помощью TPL] (http://stackoverflow.com/questions/16012096/limit-number-of-tasks-with-tpl) Это похоже на ту же проблему. Вместо того, чтобы создавать новые вопросы, пересматривайте текущий. У вас было несколько запросов на специфику. – Paparazzi
Вы хотите синхронно ждать завершения 'Task' или сделать это асинхронно? Кроме того, что должно произойти, если некоторые из «Задачей» терпят неудачу? – svick