订购任务的方式不同

时间:2016-06-01 14:37:59

标签: c# async-await

例如,我想订购3个任务,这些任务依赖于明确的顺序。 选项B是否等于关于延续的选项A?

选项A:

Task returnTask = initTask.ContinueWith( async delegate { await homeTask; } ).ContinueWith( async delegate { await sessionTask; } );
await returnTask;

选项B - 在1种方法中:

await initTask;
await homeTask;
await sessionTask;

1 个答案:

答案 0 :(得分:1)

由于ContinueWith对任务返回委托没有特殊支持,因此选项A不会等待任务2和3。

您是否知道await无法启动或运行任务?它等待已经运行的任务。因此,选项B也不对任务进行排序。它与await Task.WhenAll(...);

几乎相同

可能你应该用这个:

await F1();
await F2();
await F3();

这样,下一个任务就在上一个任务完成后开始。