gpt4 book ai didi

c# - 如何最好地并行化网页解析?

转载 作者:太空狗 更新时间:2023-10-29 23:17:45 26 4
gpt4 key购买 nike

我正在使用 html 敏捷包来解析论坛网站的各个页面。所以解析方法返回页面链接上的所有主题/线程链接,作为参数传递。我将所有已解析页面的所有这些主题链接收集在一个集合中。

之后,我检查它们是否在我的已查看网址的 Dictionary 中,如果不在,那么我将它们添加到一个新列表中,UI 会显示这个列表,它是基本上是自上次以来创建的新主题/线程。

既然所有这些操作看起来都是独立的,那么并行化它们的最佳方法是什么?

我应该使用 .NET 4.0 的 Parallel.For/ForEach 吗?

无论哪种方式,我如何才能将每个页面的结果收集到一个集合中?还是没有必要?

每当解析方法完成时,我是否可以从集中式 Dictionary 中读取它们是否同时存在?

如果我运行这个程序 4000 页,大约需要 90 分钟,如果我可以使用我所有的 8 个内核在大约 10 分钟内完成相同的任务,那就太好了。

最佳答案

Parallel.For/ForEach结合 ConcurrentDictionary<TKey, TValue> 在不同线程之间共享状态似乎是实现这一点的好方法。并发字典确保从多个线程安全读/写。

关于c# - 如何最好地并行化网页解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7732901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com