【发布时间】:2020-02-22 20:10:59
【问题描述】:
在这段代码中sn-p:
responseMessage = await HttpClient.SendAsync(requestMessage);
程序结束执行(退出代码为 0),就好像没有发生任何错误一样,不再从该行继续。但是,根据我对await的理解,基本上应该阻塞,直到方法返回HttpResponseMessage,然后依次继续。
下面这段代码 sn-p 似乎做了我认为上面的代码:
Task<HttpResponseMessage> sendAsyncTask = HttpClient.SendAsync(requestMessage);
sendAsyncTask.Wait();
responseMessage = sendAsyncTask.Result;
为什么会这样?第一个代码sn-p有什么问题?
【问题讨论】:
-
await 将调用放在一个工作线程上,如果主线程退出,则程序执行结束。
-
@EmanuelVintilă 不,它不会这样做
-
显示整个程序。
-
请提供更多信息,从代码执行开始到此时,您的代码看起来如何。如果您尝试在不支持异步的执行路径中等待 httpclient 方法,则会发生这种情况。
-
可能和我回答here的问题一样。
标签: c# asynchronous async-await httpclient