今天我尝试对在XDocument
上运行的foreach
语句进行一些优化。
优化之前:
foreach (XElement elem in xDoc.Descendants("APSEvent").ToList())
{
//some operations
}
优化后:
Parallel.ForEach(xDoc.Descendants("APSEvent").ToList(), elem =>
{
//same operations
});
我发现在Parallel.ForEach(...)
中,.NET只开启了一个线程!因此,Parallel
的时间跨度比标准的foreach
要大。
你认为为什么.NET只开启了一个线程?是由于文件锁定吗? 谢谢