2009-04-08 2 views
1

캐시하려는 웹 응용 프로그램이 있습니다. XPathDocument입니다.XPathDocument 스레딩 질문

XPathDocument은 다음과 같이 생성됩니다.

하여 XPathDocument xdoc = 새로운 하여 XPathDocument (새 StringReader를 (ruleXml));

그럼이 xdoc을 캐싱하고 각 요청에 대해 검색하고 싶습니다.

그리고는 내가

XPathNavigator를 탐색 = xdoc.CreateNavigator()를 호출 할 계획;

각 스레드에.

제 질문은이 스레드가 안전한지 여부입니다. 을 여러 개 가질 수 있습니까 XPathNavigator 다른 스레드에서 동일한 클래스를 사용하는 경우 XPathDocument?

만약 아니라면 ruleXml 문자열을 캐싱하고 각 스레드에 새로운 XPathDocument을 새로 만듭니다.

xml 읽기 전용 문서를 캐시하고 각 스레드에서 다른 xpath 쿼리를 수행하려는 경우와 같은 시나리오에서 사람들이 제안하는 내용이 궁금합니다.

답변

1

문서가 읽기 전용 인 경우 안전해야합니다. XPathNavigator를 XmlDocument 또는 XPathDocument와 별도로 유지하는 목적은 동일한 문서에 대해 동시에 여러 탐색을 수행 할 수있게하는 것입니다.