在同一行上使用await调用异步方法的目的是什么? (不是什么行为,但这种模式的实际用途是什么).据我所知,这实际上是一个同步的“阻塞”调用,因为在此上下文中的执行在GetDocumentAsync完成之前不会继续,对吗?
Document someDocument = await db.GetDocumentAsync(documentId); //AFAIK blocks until GetdocumentAsync completes and returns CalledAfterawaitReturnsAndResultIsAvailable(someDocument.someProperty);
大多数教程展示了如何调用我见过的异步方法,并且我已经在其他代码中看到了它.对我而言,它违背了异步执行的目的.看起来好像从异步调用中受益,你可以在没有await的情况下进行异步调用,并做一些其他不相关的顺序工作(或者启动一些其他异步调用)而不依赖于someDocument,然后进行等待获取异步调用的结果,然后做任何依赖于该返回的事情.这样,当异步调用也在另一个线程中工作时,可以执行其他不相关的处理.我已经看到了上述模式,我开始怀疑我是否误解了一些东西.
以这种方式进行异步调用的实际应用是什么,这样它就会阻塞直到它完成?
解决方法
原文地址:https://www.jb51.cc/csharp/100860.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。