BeginGetResponse的MSDN示例代码有两个异步调用,一个用于获取响应, 和一个从响应缓冲区读取:
http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.begingetresponse.aspx
见这一行:
// 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);
我的问题是:这里有什么优势,而不是同步阅读?
谢谢!
答案 0 :(得分:2)
以下是我从进一步调查中收集到的内容:即使回调发生在非UI线程上,异步读取也会阻止此线程阻塞。 当线程被阻塞时,它不能被线程池重用,而另一个并发请求可能导致池再创建一个线程,这会产生一些开销。
答案 1 :(得分:1)
我相信优势在于,您可以在异步调用后继续使用UI线程