我如何等待任务.当所有(…). continuewith (AnotherAwaitable)

本文关键字:continuewith AnotherAwaitable 任务 等待 何等待 | 更新日期: 2023-09-27 18:04:03

我有以下代码-

await Task.WhenAll(TaskList /*List of Task objects*/);
await AnotherAwaitableMethod( );

这工作得很好,并且是必要的,因为AnotherAwaitableMethod依赖于确保TaskList中的任务在执行之前完成。

然而,我希望能够说一些像

await Task.WhenAll(TaskList).ContinueWith( /*AnotherAwaitableMethod call?*/ );

这可能吗?我是否误解了Task.ContinueWith的目的?

我如何等待任务.当所有(…). continuewith (AnotherAwaitable)

  await Task.WhenAll(TaskList /*List of Task objects*/);
  await AnotherAwaitableMethod( );

 await Task.WhenAll(TaskList /*List of Task objects*/).ContinueWith(_ => {AnotherAwaitableMethod();}).Unwrap();

的作用几乎相同。使用ContinueWith,然而,将给你很多移动功率,如果你使用它的重载。使用ContinueWith的一个主要原因是当你想根据第一个任务的结果有条件地执行AnotherAwaitableMethod时,或者当你想使用TaskContinuationOptions

来控制上下文时