.NET 4异步WebRequest与多线程

时间:2010-08-24 11:05:10

标签: c# .net httpwebrequest

我正在使用C#.NET 4和MSSQL。

我正在编写一个代码,用于下载不同网站的html并使用Regex进行分析。

执行代码所花费的大部分时间都在等待网站html下载完成。

目前我正在使用 Task.Factory.StartNew 创建多个调用DownloadHtml()的线程。 DownloadHtml使用WebRequest& StreamReader下载并阅读网站的HTML。

1.我应该将DownloadHtml更改为使用Async WebRequest并使用单个线程吗? 2.这与使用多个线程有何不同?

1 个答案:

答案 0 :(得分:1)

  1. 我建议您使用异步Web请求。重要的是要知道这不使用单个线程。异步请求的回调将在线程池后台线程上执行。当您使用TPL时,我建议您查看这些类中的功能构建以支持异步请求(http://msdn.microsoft.com/en-us/library/dd997423.aspx)。

  2. 如上所述,这确实使用了多个线程。