Первый случай завершен за 26656мс, второй за 24478мс. Я повторил это много раз. Каждый раз второй подход незначительно быстрее.
разница между приведенными ниже фрагментами кода? Не будут ли оба использовать потоки потоков?
Например, если я хочу вызвать функцию для каждого элемента в коллекции,
Parallel.ForEach<Item>(items, item => DoSomething(item));
vs
foreach(var item in items)
{
Task.Factory.StartNew(() => DoSomething(item));
}