使用 TPL,我设置了多个任务(动态创建,可能是一个很大的数字),每个任务返回一个布尔值,我想检查所有任务返回值是否为真。我该怎么做?可能吗?如果没有,是否可以将共享对象传递给每个任务并让任务更新此对象?
编辑:这将是我的任务的一个例子。ProcessEntity 返回一个布尔值。现在我创建并执行了多个这样的任务。我需要检查所有结果是否正确。
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();
}
因此,此时我需要继续执行其他代码,并且只有在所有任务都返回 true 时才会发生这种情况。