C# 解决httpwebrequest中死锁的最佳方法是什么?

C# 解决httpwebrequest中死锁的最佳方法是什么?,c#,.net,azure,httprequest,httpclient,C#,.net,Azure,Httprequest,Httpclient,最近,由于未知原因,我的服务器CPU使用率达到100% 在分析转储文件后,我发现代码中可能存在死锁问题 从转储文件中,我获得了以下信息: This thread is making an HttpWebRequest and waiting on the remote server to respond HttpRequest URI:https://xxx.azurewebsites.net/api/ ServicePoint - ConnectionLimit:2147483647 Curr

最近,由于未知原因,我的服务器CPU使用率达到100%

在分析转储文件后,我发现代码中可能存在死锁问题

从转储文件中,我获得了以下信息:

This thread is making an HttpWebRequest and waiting on the remote server to respond
HttpRequest URI:https://xxx.azurewebsites.net/api/
ServicePoint - ConnectionLimit:2147483647 CurrentConnections:1
我有一个任务,它在创建事务时向第三方API发出http请求。我使用以下方法来调用请求。在高峰时段,此任务通常在一分钟内处理4-5个请求

 protected virtual WebResponse GetWebResponse(WebRequest request)
    {
      WebResponse response = request.GetResponse();
      this.m_WebResponse = response;
      return response;
    }

有人能解释一下僵局是怎么发生的吗。为什么服务器CPU使用率为100%。

这不会导致死锁,可能是API中的代码没有正确处理异步。@Crowcoder我检查了代码。它以异步方式正确处理。即使API中存在死锁,它也会超时。我不知道为什么它会说“这个线程被阻塞了,同时也阻塞了其他线程”