XPathDocument Threading Вопрос

У меня есть веб-приложение, в котором я пытаюсь кэшировать XPathDocument.

XPathDocument создается следующим образом.

XPathDocument xdoc = новый XPathDocument(новый StringReader(ruleXml));

Затем я хочу просто кэшировать этот xdoc и получать его для каждого запроса.

И тогда я планирую позвонить

XPathNavigator nav = xdoc.CreateNavigator();

на каждом потоке.

Мой вопрос, является ли это потокобезопасным или нет. Можете ли вы иметь несколько классов XPathNavigator в разных потоках с одним и тем же базовым XPathDocument?

Если нет, я просто кеширую строку ruleXml и создаю новыйXPathDocument в каждом потоке.

Просто интересно, что люди предлагают в таком сценарии, где я хочу кешировать XML-документ только для чтения, а затем выполнять разные запросы xpath для каждого потока.

1 ответ

Это должно быть безопасно, если документ доступен только для чтения. Вся цель отделения XPathNavigator от XmlDocument или XPathDocument состоит в том, чтобы иметь возможность одновременно выполнять несколько переходов по одному и тому же документу.

Другие вопросы по тегам