【发布时间】:2023-03-16 05:30:01
【问题描述】:
我已经搜索过,但在任何地方都找不到明确的确认...如果一个任务有多个延续(不是链式延续),这些延续是否彼此并行运行?
我想运行 task1,然后是 task2-task3-task4 彼此并行运行,最后是 task5,当所有都完成时。下面的例子。任务 2、3 和 4 肯定会彼此异步运行吗?
在此过程中,欢迎提出任何改进模式的建议。似乎有几种不同的方法可以完成这种组合。谢谢
public Task MyWorkflowAsync() {
Task task1 = Task.Factory.StartNew( () => DoTask1() );
var tarray = new Task[] {
task1.ContinueWith( task => DoTask2() ),
task1.ContinueWith( task => DoTask3() ),
task1.ContinueWith( task => DoTask4() )
};
return Task.Factory.ContinueWhenAll( tarray, completedTasks => DoTask5() );
}
【问题讨论】:
标签: .net task-parallel-library