Как лучше всего распараллелить синтаксический анализ веб-страниц?

Я использую html agility pack для синтаксического анализа отдельных страниц веб-сайта форума. Таким образом, метод синтаксического анализа возвращает все ссылки на темы / темы в ссылке на страницу, переданные в качестве аргумента. Я собираю все эти тематические ссылки всех проанализированных страниц в единую коллекцию.

После этого я проверяю, есть ли они в моем Словаре уже просмотренных URL-адресов, и если их нет, то я добавляю их в новый список, и пользовательский интерфейс показывает этот список, который в основном новые темы / темы, созданные с прошлого раза.

Поскольку все эти операции кажутся независимыми, как лучше всего их распараллелить?

Следует ли использовать .NET 4.0 Parallel.For / ForEach ?

В любом случае, как могу ли я собрать результаты каждой страницы в единую коллекцию? Или в этом нет необходимости?

Могу ли я читать из моего централизованного словаря , когда метод синтаксического анализа завершается, чтобы увидеть, есть ли они там одновременно?

Если я запустил эту программу для 4000 страниц, это займет например, 90 минут, было бы здорово, если бы я мог использовать все свои 8 ядер для выполнения той же задачи за ~ 10 минут.

5
задан Joan Venge 11 October 2011 в 21:43
поделиться