如何阻止HttpClient.GetAsync(uri)挂起?
我有以下代码用于调用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();
线,但事实并非如此。 它似乎挂了。
我的spidey-sense告诉我,你的调用堆栈会进一步阻止你的代码在返回的任务上阻塞,例如, Task.Wait
或Task
。 默认情况下,这会导致我在博客上解释的死锁 。
要修复它,请用await
替换Task.Wait
和Task
Task.Wait
。