我能否创建一个 private static readonly HtmlParser HtmlParser = new HtmlParser();
并在多个线程中安全地使用它?
或者我应该为每个线程或每次使用创建一个解析器以避免并发问题吗?
最佳答案
来自 the source看起来它应该是线程安全的。该对象本身没有可变状态,并且每次都使用默认选项创建一个新的 HtmlParser 似乎与创建一次相比没有任何好处,因此您应该能够将其视为单例。唯一的共享状态是它的配置,但默认构造函数使用默认配置,无论如何这是一个单例。
话虽如此,将其视为单例并没有太大的好处。它避免了分配并稍微减少了 GC,但由于它没有昂贵的构造函数,因此差异不会很大。
关于c# - AngleSharp Html Parser 线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39471800/