我试图了解如何在C#中等待异步工作,有一件事让我很困惑.我知道任何使用await关键字的方法都必须用async标记.我的理解是当一个带有await关键字的行被命中时,该行下面的代码不会被执行.启动异步操作以在await行中继续执行该语句,并将控制返回给可以继续执行的调用方法.
问题1:这个假设是正确的还是仍然执行await关键字下面的代码?
其次假设我调用了一个服务方法async,需要返回它的结果.return语句在await关键字下面.
问题2:在异步调用完成之后或之前,返回语句是什么时候命中的?
问题3:我想使用该服务调用的结果和异步操作不会导致我希望在返回结果时命中调用方法.我知道这可以使用Result属性来完成,这会使调用同步.但是,在数据库操作中使用异步是什么原因导致它们在大多数应用程序中实际占用80%的时间.
问题4:如何在数据库操作中使用异步?有可能并推荐?
问题5:在哪个场景中异步操作有用似乎每个api现在只是在没有理由的情况下进行异步操作?还是我错过了使用异步操作的意义?
我的意思是说api正在制造asyn方法而没有理由是因为方法必须返回一些东西并且直到计算得出它们如何返回所以在本质中这个调用仍然不会被阻塞,因为它将是无用的直到结果被退回?