我正在将我们的一个应用程序改成异步方式,但是当我调用 SendAsync 时,我的 HttpClient 超时(我收到了一个 TaskCanceledException)。以下是超时的代码:
response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead)
.ConfigureAwait(false);
据我所知,
ConfigureAwait(false)
的意思是我不能使这个任务死锁。我在整个堆栈中一直等待它(向上或向下)。当我在Postman中发出相同的请求时,只需要不到一秒钟。我的HttpClient的超时时间是2分钟。可能还有其他问题吗?
另外,因为我得到了一个
TaskCanceledException
,这是否意味着我的Tasks没有死锁?更新
感谢 @Servy 的答案,我已经通过将上面的代码更改为以下内容来解决我的问题:
response = client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead)
.ConfigureAwait(false).GetAwaiter().GetResult();
所以如果我不等待它,一切正常工作。这是否意味着某处最可能存在死锁?