我有以下用于调用uri的代码:
var uri = string.Format("Helpers/ProfileList/Online/?locationId=0&skip=0&take={0}", numProfiles);
HttpResponseMessage response = await client.GetAsync(uri);
response.EnsureSuccessStatusCode();
uri指向一个自定义的web api uri(我可以调试并完成)。但是,当调用api中的最后一个return语句时,似乎什么也没发生。它应该转到response.EnsureSuccessStatusCode();
行,但事实并非如此。它似乎悬而未决。
答案 0 :(得分:11)
我的spidey-sense告诉我,你的调用堆栈会进一步阻止你的代码阻止返回的任务,例如Task.Wait
或Task<T>.Result
。默认情况下,这将是我在博客上解释的cause a deadlock。
要解决此问题,请将Task.Wait
和Task<T>.Result
替换为await
。