【发布时间】:2015-07-23 19:15:35
【问题描述】:
我有以下代码 -
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).ContinueWith(_ => AnotherAwaitableMethod( )).Unwrap();。但是,如果第一个代码已经有效,为什么还需要它呢? -
好吧,问题中的关键词是,不是需要,而是语义 - 这是一种编码偏好;我希望电话在一行中。
-
@Will 你可以通过
await AnotherAwaitableMethod(await Task.WhenAll(TaskList));把它放在同一行。 -
为什么不
Task.WhenAll(Task.WhenAll(TaskList), AnotherAwaitableMethod())?
标签: c# async-await task