我有一个与.Result属性一起使用的异步方法,但在使用await关键字时则不行。我认为使用等待而不是结果是正确的。我错了吗?
VariableString = "Informe - "& TEXT(C9;"aaaa/mm/dd") &" - "& TEXT(G9;"aaaa/mm/dd")
ActiveCell.Formula = "=" & VariableString
上面代码中的客户端是HttpClient,ParseJson方法如下:
// doesn't work - hangs
protected async Task<T> GetAsync<T>(string uri) =>
await ParseJson<T>(await Client.GetAsync(uri));
// works
protected async Task<T> GetAsync<T>(string uri) =>
await ParseJson<T>(Client.GetAsync(uri).Result);
代码正在asp.net mvc应用程序中运行,如果这有任何区别。
更新 固定。谢谢: @Igor - 你是对的,调用方法的MVC控制器动作不是异步的,因此使用.Result而不是等待。 @Panagiotis - 我已经将你的代码拆分了,因为你建议让它更易于调试。