我在 MSDN 上的XmlDocument
类文档中看到
这种类型的任何公共静态(在 Visual Basic 中为 Shared)成员都是线程安全的。不保证任何实例成员都是线程安全的。
上课也是一样XmlNodeList
。
我在以下上下文中使用这些类。在Parallel.Foreach
我做的里面:
X MyX = new X();
string XMLstring = MyX.GetXML(ID, true);
XmlDocument doc = new XmlDocument();
doc.LoadXml(XMLstring);
XmlNodeList nodeList = doc.SelectNodes("blah/secondblah");
whereX
是在 IT 提供给我的库中定义的,而 whereID
是int
(我大致在哪个循环上)。
这已经在非并行上下文中进行了彻底的测试,string
产生的 sGetXML
确实是正确的,对应XmlDocument
的也是正确的,并且通过“解析”它XmlNodeList
提供了预期的结果。
现在,这个并行上下文并假设X
并且GetXML
确实是线程安全的,我在每个循环中的事实是否new
确保XmlDocument
线程安全?我的意思是,我怎么知道接收is的string
成员(首先是否有这样的字符串?因为我string
在文档中没有看到任何属性)?XmlDocument
LoadXml
static
我想我不太了解上面引用的 MSDN 文档...