C# 为什么.NET HttpResponseMessage.Content读取方法是异步的?

C# 为什么.NET HttpResponseMessage.Content读取方法是异步的?,c#,.net,async-await,task,httpclient,C#,.net,Async Await,Task,Httpclient,我注意到,HttpResponseMessage.Content有ReadAsStringAsync()方法。当此操作需要cpu且任务创建将增加更多cpu工作时,使其异步有什么意义?它不是纯粹的cpu限制操作。在具有大响应的请求中,可以在通过网络接收整个响应正文之前开始读取响应正文 响应的第一部分可能已经在内存中,但是在读取响应时,您可能会遇到一个需要等待通过网络接收其余数据的点。这允许您异步等待,而不是阻塞线程。如果您不关心响应主体,那么从线路上读取整个响应(这是一个异步操作)就没有意义了。来

我注意到,
HttpResponseMessage.Content
ReadAsStringAsync()
方法。当此操作需要cpu且任务创建将增加更多cpu工作时,使其异步有什么意义?

它不是纯粹的cpu限制操作。在具有大响应的请求中,可以在通过网络接收整个响应正文之前开始读取响应正文


响应的第一部分可能已经在内存中,但是在读取响应时,您可能会遇到一个需要等待通过网络接收其余数据的点。这允许您异步等待,而不是阻塞线程。

如果您不关心响应主体,那么从线路上读取整个响应(这是一个异步操作)就没有意义了。来源如下:等待来自远程HTTP端点的响应肯定不需要任何CPU。相反,同步版本会不必要地阻止线程。