Выполнить QProcess вместо QThread - PullRequest
0 голосов
/ 05 марта 2019

Наше приложение написано для запуска с использованием сторонних DLL.Сторонняя DLL не является поточно-ориентированной.Приложение работает как положено, когда каждый из (900+) потоков выполняется один за другим.Когда потоки выполняются одновременно с QThreadPool :: maxThreadCount - приложение выдает исключения.Я решил обойти это ограничение, выполняя каждый поток, а не в контексте одного процесса приложения, а как приложение QProcess.Таким образом, для 10 задач приложение запускает 10 процессов QProcess (каждый QProcess работает по одной задаче).

Обратите внимание, что в приложении - приложение может открыть сотни потоков задач.Я понимаю, что необходимо реализовать дроссель обработки, который имитирует QThreadPool :: maxThreadCount.Я рассмотрю подход к управлению рабочими потоками Запуск QProcess из QThread

В духе «что можно сделать» мысли / рекомендации по стратегии для реализации QProcess (или другого подхода) с Qt5.12 будет оценен?Если есть пример стартового проекта - буду очень признателен.

С наилучшими пожеланиями,

Тим Пир

...