我正在使用 C# .NET 4 和 MSSQL。
我正在编写一段代码,用于下载不同网站的 html 并使用正则表达式对其进行分析。
执行代码的大部分时间是等待网站 html 下载完成。
目前我正在使用 Task.Factory.StartNew 创建调用 DownloadHtml() 的多个线程。 DownloadHtml 使用 WebRequest & StreamReader 下载和读取网站的 html。
<强>1。我是否应该将 DownloadHtml 更改为使用 Async WebRequest 并仅使用单个线程?
2. 这与使用多线程有何不同?
最佳答案
我建议您使用异步网络请求。重要的是要知道这不使用单个线程。异步请求的回调将在线程池后台线程上执行。当您使用 TPL 时,我建议您查看这些类中内置的功能以支持异步请求 (http://msdn.microsoft.com/en-us/library/dd997423.aspx)。
如前所述,这仍然使用多线程。
关于c# - .NET 4 异步 WebRequest 与多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3555744/