Task.Factory.StartNew vs. Parallel.Invoke
В моем приложении я выполняю от нескольких десятков до нескольких сотен действий параллельно (нет возвращаемого значения для действий).
Какой подход будет наиболее оптимальным:
С помощьюTask.Factory.StartNew
в цикле foreach итерацииAction
массив ()Action[]
Task.Factory.StartNew(() => someAction());
С помощьюParallel
класс гдеactions
являетсяAction
массив ()Action[]
Parallel.Invoke(actions);
Эти два подхода эквивалентны? Есть ли какие-либо последствия для производительности?
РЕДАКТИРОВАТЬ
Я провел несколько тестов производительности, и на моей машине (2 CPU 2 Core каждый) результаты, похоже, очень похожи. Я не уверен, как это будет выглядеть на других машинах, таких как 1 процессор. Также я не уверен (не знаю, как это проверить очень точно), что такое потребление памяти.