【发布时间】:2011-12-05 16:23:23
【问题描述】:
我正在使用 html 敏捷包来解析论坛网站的各个页面。所以解析方法返回页面链接上的所有主题/线程链接,作为参数传递。我将所有已解析页面的所有这些主题链接收集在一个集合中。
之后,我检查它们是否在我的Dictionary 上已经查看过的 url,如果不是,那么我将它们添加到一个新列表中,UI 会显示这个列表,这基本上是新的主题/线程自上次创建。
既然所有这些操作看起来都是独立的,那么并行化这些操作的最佳方法是什么?
我应该使用 .NET 4.0 的 Parallel.For/ForEach 吗?
无论哪种方式,如何将每个页面的结果收集到一个集合中?还是没有必要?
每当解析方法完成时,我可以从我的集中式Dictionary 中读取它们是否同时存在吗?
如果我将这个程序运行 4000 页,大约需要 90 分钟,如果我可以使用所有 8 个内核在大约 10 分钟内完成相同的任务,那就太好了。
【问题讨论】:
标签: c# .net multithreading parallel-processing