我有几个任务,每个人都有ContinueWith
使用任务的结果。这样的事情:
Task myTask01 = myMethod01Async().ContinueWith((a) => //do somenthing with
a.result);
Task myTask02 = myMethod02Async().ContinueWith((a) => //do somenthing with a.result);
Task.WhenAll(myTask01, myTask02);
我知道WhenAll会等到参数中的所有任务完成。但是在这种情况下,我有一个ContinueWith
,我不知道当所有ContinueWith
完成时是等待还是完成,或者当Task01
和Task02
完成时是否继续,所以代码继续虽然ContinueWith
代码仍在运行。
答案 0 :(得分:2)
ContinueWith返回一个新任务,因此使用Task。 WhenAll,您实际上正在等待从ContinueWith
而不是myMethod01Async
和myMethod02Async
返回的任务。
所以是的,任务。 WhenAll将等待ContinueWith
内的代码完成。