XPathDocument Threading Вопрос
У меня есть веб-приложение, в котором я пытаюсь кэшировать XPathDocument.
XPathDocument создается следующим образом.
XPathDocument xdoc = новый XPathDocument(новый StringReader(ruleXml));
Затем я хочу просто кэшировать этот xdoc и получать его для каждого запроса.
И тогда я планирую позвонить
XPathNavigator nav = xdoc.CreateNavigator();
на каждом потоке.
Мой вопрос, является ли это потокобезопасным или нет. Можете ли вы иметь несколько классов XPathNavigator в разных потоках с одним и тем же базовым XPathDocument?
Если нет, я просто кеширую строку ruleXml и создаю новыйXPathDocument в каждом потоке.
Просто интересно, что люди предлагают в таком сценарии, где я хочу кешировать XML-документ только для чтения, а затем выполнять разные запросы xpath для каждого потока.
1 ответ
Это должно быть безопасно, если документ доступен только для чтения. Вся цель отделения XPathNavigator от XmlDocument или XPathDocument состоит в том, чтобы иметь возможность одновременно выполнять несколько переходов по одному и тому же документу.