今天我试着做一些优化到foreach
声明,这对XDocument
有效。为什么不是Parallel.ForEach运行多线程?
优化前:
foreach (XElement elem in xDoc.Descendants("APSEvent").ToList())
{
//some operations
}
优化后:
Parallel.ForEach(xDoc.Descendants("APSEvent").ToList(), elem =>
{
//same operations
});
我看到.NET在Parallel.ForEach(...)
打开只有一个线程!结果,Parallel
的时间范围大于标准foreach
。
为什么你认为.NET只能打开1个线程?由于文件的锁定? 感谢
你的机器有多少核心或逻辑处理器?列表中有多少个元素? –
我无法看到标题与问题的任何关系。 –
Christian.K,我的服务器采用至强处理器和8GB内存(戴尔PowerEdge R210),带有MS Server2008操作系统。我认为,这不取决于我在XML文档中有多少元素,我认为时间处罚是因为文件锁定。 – zzfima