AngleSharp Html Parser 线程安全吗?

Posted

技术标签:

【中文标题】AngleSharp Html Parser 线程安全吗?【英文标题】:Is AngleSharp's HtmlParser threadsafe? 【发布时间】:2017-01-21 03:49:48 【问题描述】:

我可以创建一个private static readonly htmlParser HtmlParser = new HtmlParser(); 并跨多个线程安全地使用它吗?

或者我应该为每个线程或每个使用创建一个解析器以避免并发问题?

【问题讨论】:

您应该更明确地说明您打算使用哪种方法,并向我们提供代码示例。 【参考方案1】:

从the source 看来它应该是线程安全的。该对象本身没有可变状态,并且每次使用默认选项创建一个新的 HtmlParser 似乎比创建一次没有任何好处,因此您应该能够将其视为单例。唯一的共享状态是它的配置,但默认构造函数使用默认配置,无论如何都是单例。

话虽如此,将其视为单身并没有太多好处。它避免了分配并稍微减少了 GC,但由于它没有昂贵的构造函数,因此差异不会很大。

【讨论】:

以上是关于AngleSharp Html Parser 线程安全吗?的主要内容,如果未能解决你的问题,请参考以下文章

用AngleSharp & LINQPad抓取分析博客园排行榜

Anglesharp - 如何从 Yelp 网站获得评分和评论?

PuppeteerSharp+AngleSharp的爬虫实战之汽车之家数据抓取

AngleSharp 的Dom 选择器

如何在 AngleSharp 项目对象中获取链接的标题?

AngleSharp 自带的HttpRequest参数设置