我已经在这个问题上停留了一段时间了,实际上还没有找到任何有用的说明。
如果我有async
类似的方法:
public async Task<bool> MyMethod()
{
// Some logic
return true;
}
public async void MyMethod2()
{
var status = MyMethod(); // Visual studio green lines this and recommends using await
}
如果await
在这里使用,异步方法的意义是什么?难道async
VS告诉我打电话没用await
吗?这是否不辜负不等待任务完成就将任务卸载到线程的目的?
如果我在这里使用await,那么异步方法的意义何在?
await
不阻塞线程。MyMethod2
将同步运行直到到达await
表达式。然后MyMethod2
将被挂起,直到等待的任务(MyMethod
)完成。虽然MyMethod
没有完成控制将返回到呼叫者MyMethod2
。这点await
- 主叫方将继续这样做的工作。
是不是让VS告诉我打电话给await的异步方法没有用?
async
只是一个标志,意思是“方法中的某个地方您有一个或多个正在等待”。
这是否不辜负不等待任务完成就将任务卸载到线程的目的?
如上所述,您不必等待任务完成。这里没有任何障碍。
注意:要遵循框架命名标准,建议您将Async
后缀添加到异步方法名称中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句