我有三个任务A,B,C。
B 必须在 C 之前运行,但 A 可以与它们两者并行运行。这是最近改变的逻辑,我们目前的逻辑运行良好,我只是想知道是否有更好的解决方案来解决我们目前的问题:
public void RunTasks(...) {
Action<IRunnableTask> runner = task =>
{
if (task.ShouldRun(request))
{
task.Run(request, response);
}
};
// run parallel tasks
Parallel.ForEach(parallelTasks, runner);
// run serial tasks
Array.ForEach(serialTasks, runner);
}
在这里,A 和 B 将是并行任务,C 在串行任务列表中。问题在于代码会在 C 开始之前等待 A 完成,这是不必要的。
那么,是否有一个很好的干净解决方案,或者我是否需要开始进行回调等等?