Сегодня я попытался оптимизировать оператор foreach
, который работает с XDocument
.
До оптимизации:
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 поток? Из-за блокировки файла? Спасибо