例如,我想订购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;
答案 0 :(得分:1)
由于ContinueWith
对任务返回委托没有特殊支持,因此选项A不会等待任务2和3。
您是否知道await无法启动或运行任务?它等待已经运行的任务。因此,选项B也不对任务进行排序。它与await Task.WhenAll(...);
可能你应该用这个:
await F1();
await F2();
await F3();
这样,下一个任务就在上一个任务完成后开始。