すべてのタスクが完了したら、完了した行を実行する必要があります。Task.WaitAll(tasks) が処理すると思っていましたが、コールバック メソッドを実行した後、完了した行が実行されます。Task 配列が完了するまでメイン スレッドをブロックする方法はありますか.
Taskpprocessor.Batchstart(定義)
public void BatchStart(List<TaskDefinition> definition)
{
int i = 0;
tasks = new Task[definition.Count];
definition.ForEach((a) =>
{
tasks[i] = Task<TaskResult>.Factory.StartNew(() => (TaskResult)a.MethodTocall.DynamicInvoke(a.ARguments));
tasks[i].ContinueWith(task => RunTaskRetObjResultIns((Task<TaskResult>)task, a.CompleteMethod));
i++;
});
Task.WaitAll(tasks);
Console.WriteLine("completed");
}