我的软件加载了最多10,000个网址的列表,这些网址用于为我的网站提取保险价格。
我每个请求都有一个单独的线程运行,它从列表中加载每个URL并获取数据。我想要做的是每次运行20-30个请求。在循环查看文本文件的结果时,同时启动20-30个线程的最佳方法是什么?
答案 0 :(得分:3)
查看任务并行库,尤其是Parallel.ForEach方法。
答案 1 :(得分:1)
如果您使用的是.NET 4,那么您可以查看TPL以及类似的内容。
const string path = @"c:\urls.txt";
string[] urls = File.ReadAllLines(path);
var options = new ParallelOptions()
{ MaxDegreeOfParallelism = 20};
Parallel.ForEach(urls, options, url =>
{
// Call your scraper here
Debug.WriteLine(url);
});