TPLを使用して、複数のタスクを設定し(動的に作成され、多数になる可能性があります)、それぞれがboolを返します。すべてのタスクの戻り値がtrueかどうかを確認したい. どうすればいいですか?出来ますか?そうでない場合、各タスクに共有オブジェクトを渡して、タスクにこのオブジェクトを更新させることは可能ですか?
編集:これは私の仕事の例です。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 を返した場合にのみ実行する必要があります。