AngleSharp 的 HtmlParser 线程安全吗?

Bru*_*pes 5 .net c# html-parsing anglesharp

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

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

Geo*_*yar 0

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

话虽这么说,将其视为单例并没有多大好处。它避免了分配并减少了一点 GC,但由于它没有昂贵的构造函数,因此差异不会很大。