Сегодня я попытался сделать некоторую оптимизацию для оператора 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 поток? Из-за блокировки файла? Благодаря