我正在学习await / async。我有一个问题: 直接在任务上调用await并稍后调用它之间有区别吗?
var task = getAllAsync();
...
var list = await task;
OR
var list = await getAllAsync();
如果有差异,那是什么?
答案 0 :(得分:4)
如果您在分配"任务"之后立即等待;变量没有区别。如果在方法调用和等待之间有代码,则有机会并行执行操作。
大多数任务都是创建的,而且#34; hot" - 他们已经开始操作(如阅读文件)。因此,如果您在await
之前有一些代码,则代码可能会执行,而任务启动的操作将单独进行。即您可以启动多项任务,而不是等待所有任务完成 - Running multiple async tasks and waiting for them all to complete。