我怎样才能等待 Task.WhenAll( ... ).ContinueWith( AnotherAwaitable )?
How can I await Task.WhenAll( ... ).ContinueWith( AnotherAwaitable )?
我有以下代码 -
await Task.WhenAll(TaskList /*List of Task objects*/);
await AnotherAwaitableMethod( );
这工作正常并且是必要的,因为 AnotherAwaitableMethod
依赖于确保 TaskList
中的任务在执行之前完成。
但是,我希望能够说出类似的话
await Task.WhenAll(TaskList).ContinueWith( /*AnotherAwaitableMethod call?*/ );
这可能吗?我是否误解了 Task.ContinueWith
的目的?
await Task.WhenAll(TaskList /*List of Task objects*/);
await AnotherAwaitableMethod( );
和
await Task.WhenAll(TaskList /*List of Task objects*/).ContinueWith(_ => {AnotherAwaitableMethod();}).Unwrap();
将采取几乎相同的行动。然而,如果你使用它的 overloads,使用 ContinueWith 会给你很多移动能力。
使用 ContinueWith 的一个主要原因是当你想根据第一个任务的结果有条件地执行 AnotherAwaitableMethod 或当你想使用 TaskContinuationOptions
控制上下文时
我有以下代码 -
await Task.WhenAll(TaskList /*List of Task objects*/);
await AnotherAwaitableMethod( );
这工作正常并且是必要的,因为 AnotherAwaitableMethod
依赖于确保 TaskList
中的任务在执行之前完成。
但是,我希望能够说出类似的话
await Task.WhenAll(TaskList).ContinueWith( /*AnotherAwaitableMethod call?*/ );
这可能吗?我是否误解了 Task.ContinueWith
的目的?
await Task.WhenAll(TaskList /*List of Task objects*/);
await AnotherAwaitableMethod( );
和
await Task.WhenAll(TaskList /*List of Task objects*/).ContinueWith(_ => {AnotherAwaitableMethod();}).Unwrap();
将采取几乎相同的行动。然而,如果你使用它的 overloads,使用 ContinueWith 会给你很多移动能力。 使用 ContinueWith 的一个主要原因是当你想根据第一个任务的结果有条件地执行 AnotherAwaitableMethod 或当你想使用 TaskContinuationOptions
控制上下文时