我正在使用C#.NET 4和MSSQL。
我正在编写一个代码,用于下载不同网站的html并使用Regex进行分析。
执行代码所花费的大部分时间都在等待网站html下载完成。
目前我正在使用 Task.Factory.StartNew 创建多个调用DownloadHtml()的线程。 DownloadHtml使用WebRequest& StreamReader下载并阅读网站的HTML。
1.我应该将DownloadHtml更改为使用Async WebRequest并使用单个线程吗? 2.这与使用多个线程有何不同?
答案 0 :(得分:1)
我建议您使用异步Web请求。重要的是要知道这不使用单个线程。异步请求的回调将在线程池后台线程上执行。当您使用TPL时,我建议您查看这些类中的功能构建以支持异步请求(http://msdn.microsoft.com/en-us/library/dd997423.aspx)。
如上所述,这确实使用了多个线程。