如何管理多个线程

时间:2012-02-28 14:28:50

标签: c#

我的软件加载了最多10,000个网址的列表,这些网址用于为我的网站提取保险价格。

我每个请求都有一个单独的线程运行,它从列表中加载每个URL并获取数据。我想要做的是每次运行20-30个请求。在循环查看文本文件的结果时,同时启动20-30个线程的最佳方法是什么?

2 个答案:

答案 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);
            });