小编Kev*_* M.的帖子

在 asp.net 中等待 GetByteArrayAsync 不返回

以下代码在从 ASP.NET 应用程序调用时挂起:

private async Task<XPathNavigator> UspsCreateAndPostRequest(string sUrl)
{
  HttpClient client = new HttpClient();
  byte[] urlContents = await client.GetByteArrayAsync(sUrl);
  string sResponse = System.Text.Encoding.UTF8.GetString(urlContents);
  ... //more code to return XPathNavigator object based on response
}
Run Code Online (Sandbox Code Playgroud)

如果我改为跟随它工作正常:

private async Task<XPathNavigator> UspsCreateAndPostRequest(string sUrl)
{
  HttpClient client = new HttpClient();
  byte[] urlContents = null;
  var task = Task.Run(async () => { urlContents = await client.GetByteArrayAsync(strUrl); });
  task.Wait();
  string sResponse = System.Text.Encoding.UTF8.GetString(urlContents);
  ... //more code to return XPathNavigator object based on response
}
Run Code Online (Sandbox Code Playgroud)

方法签名返回的事实是导致问题的 Task<XPathNavigator> …

c# asp.net async-await

1
推荐指数
1
解决办法
2549
查看次数

标签 统计

asp.net ×1

async-await ×1

c# ×1