Task Parallel Library - отличная оболочка для ThreadPool, которая обеспечивает почти оптимальное использование всех ядер. Это означает не только порождение потоков, но и ограничение количества активных потоков, чтобы не перегружать систему слишком большим количеством активных потоков. Например, два параллельных Parallel.ForEach () не приведут к 16 активным потокам на 8-ядерном компьютере. Там будет 8 активных потоков, и работа обоих ForEach () будет сбалансирована между ними. Но эта балансировка работает на уровне процесса. А как насчет всей системы?
Я обеспокоен возможным конфликтом при запуске 2 или более экземпляров приложений с привязкой к ЦП с использованием TPL. Вопрос: нормально ли с точки зрения производительности иметь много параллельных приложений, связанных с процессором, ИЛИ стоит ли перенести всю логику в один процесс и использовать балансировку работы PTL?