【发布时间】:2022-11-26 22:35:52
【问题描述】:
我有很多异步运行的任务
Task<bool> task1 = Task.Run<bool>(() =>
{
return this.addGroupStringToDictionary("IfcPolyline");
});
Task<bool> task2 = Task.Run<bool>(() =>
{
return this.addGroupStringToDictionary("IfcPolyLoop");
});
Task<bool> task3 = Task.Run<bool>(() =>
{
return this.addGroupStringToDictionary("IfcAxis2Placement2D");
});
Task<bool> task4 = Task.Run<bool>(() =>
{
return this.addGroupStringToDictionary("IfcAxis2Placement3D");
});
现在,我想在其中一些任务完成后立即执行其他任务。
假设我有 3 个任务需要在那之后执行:
-
task5 需要在 Task1 和 Task2 完成时执行。
-
任务 6 需要在任务 3 和任务 4 完成后执行。
-
Task 1 和Task 6 完成后需要执行Task 7。
我该怎么做,因为如果我在调用 task5 之前使用 await Task.WhenAll(task1,task2),我也会阻止 task6 和 task7 的执行?
【问题讨论】:
标签: c# asynchronous