title: Is reading from an XmlDocument object thread safe?
body: <p>I was wondering if i could safely read from an XmlDocument object using SelectNodes() and SelectSingleNode() from multiple threads with no problems.  MSDN says that they are not guaranteed to be thread safe.  If SelectNodes() and SelectSingleNode() do present problems running from multiple threads, could i use proper locking to avoid any issues?  I have a WCF service set up that needs to grab a chunk of xml from a database and select some info out of this xml.  I'd like to cache the xml to avoid hitting the database so often, but i'm concerned about thread safety and performance.  Is there a better way to go about doing this?  Thanks</p>