Вопрос 1.
Использует Parallel.For и Parallel.ForEach лучше подходит для работы с упорядоченными или неупорядоченными задачами?
Моей причиной для запроса является то, что я недавно обновил серийный цикл, в котором StringBuilder использовался для генерации SQL-оператора на основе различных параметров. В результате SQL немного перепутался (до того, что он содержал синтаксические ошибки) по сравнению с использованием стандартного цикла foreach, поэтому мое чувство кишки состоит в том, что TPL не подходит для выполнения задач, где данные должны отображаться в конкретный порядок.
Вопрос 2.
Использует ли TPL многоядерные архитектуры, я должен предоставить что-либо до выполнения?
Моя причина для того, чтобы задать вопрос, относится к вопросу о наушнике, который я задал, касающемуся профилирования производительности операций TPL. Ответ на вопрос озадачил меня тем фактом, что TPL не всегда более эффективен, чем стандартный последовательный цикл, поскольку приложение может не иметь доступа к нескольким ядрам, и поэтому накладные расходы на создание дополнительных потоков и циклов приведут к снижению производительности в сравнении к стандартному серийному циклу.