Пытаюсь найти выход из следующей ситуации:
QProcess должен запускать команду и прекращать ее выполнение, когда достигнута желаемая продолжительность или команда завершена. Этот QProcess запускается рабочим процессом QThread.
Это можно легко сделать, используя это:
QProcess task("executedTool -parameters");
task.start();
task.waitForFinished(desired_max_duration_in_ms);
Но также должна быть функция приостановки работы с дыркой. Я могу легко приостановить QProcess с помощью сигналов pthread:
kill(task_.pid(), SIGSTOP);
и
kill(task_.pid(), SIGCONT);
Но затем длительность waitForFinished продолжает работать и превышается, пока QProcess приостановлен.
Кто-нибудь знает, как это сделать? Когда я мог бы приостановить дырочный QThread, который запускает QProcess и команду ожидания, продолжительность ожидания также была бы приостановлена. Но как я могу получить pid QThread? Есть ли лучшее решение Qt для приостановки QProcess?
task.setProcessState(QProcess::NotRunning)
, чтобы указать, что процесс больше не выполняется. Я думаю, что это должно остановить waitForFinished, но я не уверен в этом на 100%. - person Nicholas Smith   schedule 21.02.2013