【发布时间】:2015-01-28 21:56:34
【问题描述】:
如果我等待我正在执行ReadAsStringAsync() 的响应,我是否应该等待 ReadAsStringAsync()?为了进一步澄清,以下之间有什么区别或正确方法?它们实际上是一样的吗?
var response = await httpClient.GetAsync("something");
var content = await response.Content.ReadAsStringAsync();
return new AvailableViewingTimesMapper().Map(content);
或
var response = await httpClient.GetAsync("something");
var content = response.Content.ReadAsStringAsync();
return new AvailableViewingTimesMapper().Map(content.Result);
【问题讨论】:
-
如果你想在使用结果之前对任务做一些事情,我认为你只会做
var content = response.Content.ReadAsStringAsync();。 -
你永远不应该这样做
Map(content.Result)你可能会死锁你的程序,如果你要推迟它,你仍然需要使用await。Map(await content),
标签: c# async-await dotnet-httpclient