Tot*_*oto 0 .net c# asynchronous
我使用 Task.Wait() 方法同步使用异步方法,但是当调用完成时,我想访问由 Task<> 模板化的对象。
Task<HttpResponseMessage> message = _httpClient.GetAsync(Globals.ENDPOINT_URI + Uri.EscapeDataString(query));
message.Wait();
Run Code Online (Sandbox Code Playgroud)
如何访问消息对象的 HttpResponseMessage?
谢谢
您需要使用async/await,因为使用Wait和被认为是不好的做法Result。您的代码将更新为以下内容:
HttpResponseMessage message =
await _httpClient.GetAsync(Globals.ENDPOINT_URI + Uri.EscapeDataString(query));
Run Code Online (Sandbox Code Playgroud)
await都会等待调用完成并提供结果,该结果将保存在您的message变量中。
互联网上有很多很好的资源,Stack Overflow 上有很多关于async/awaitC# 5 中引入的很好的答案。这里有一个页面可以帮助您入门: https: //learn.microsoft.com/en-us/dotnet/csharp/async。
编辑:这是关于该Result问题的一个很好的资源:https://blog.stephencleary.com/2012/07/dont-block-on-async-code.html
| 归档时间: |
|
| 查看次数: |
2169 次 |
| 最近记录: |