c#BeginGetResponse:是否有任何理由在响应回调中异步读取字节?

c#BeginGetResponse:是否有任何理由在响应回调中异步读取字节?,c#,asynchronous,httpwebrequest,C#,Asynchronous,Httpwebrequest,BeginGetResponse的MSDN示例代码有两个异步调用,一个用于获取响应, 以及从响应缓冲区读取的一个: 请看这一行: // Begin the Reading of the contents of the HTML page and print it to the console. IAsyncResult asynchronousInputRead = responseStream.BeginRead(myRequestState.BufferRead, 0, BUFFER_

BeginGetResponse的MSDN示例代码有两个异步调用,一个用于获取响应, 以及从响应缓冲区读取的一个:

请看这一行:

// Begin the Reading of the contents of the HTML page and print it to the console.
  IAsyncResult asynchronousInputRead = responseStream.BeginRead(myRequestState.BufferRead, 0, BUFFER_SIZE, new AsyncCallback(ReadCallBack), myRequestState);
我的问题是:与同步读取相比,这里的优势是什么


谢谢

我相信这样做的好处是,在异步调用之后,您仍然可以对UI线程进行处理。

以下是我从进一步调查中收集的信息:即使回调发生在非UI线程上,异步读取也可以防止此线程阻塞。
当线程被阻塞时,线程池不能重新使用它,另一个并发请求可能会导致线程池再创建一个线程,这会产生一些开销

是的,但在本例中,BeginRead是从回调调用的;没有涉及UI线程。那么,为什么不进行同步读取呢?