qt - qprocess запуска в цикле - PullRequest
       4

qt - qprocess запуска в цикле

1 голос
/ 30 ноября 2009

Я вызываю процесс в цикле. Необходимо убедиться, что один процесс завершается до его повторного запуска. как это возможно.

    void MainWindow::setNewProjectInQueueList()
{
//  this is already gotten in queueList now loop thru the list and add project
    QStringList arguments;
    projNm = ui->lineEditCreateProject->text();
    qDebug() << " projNm " << projNm;
    for (int j= 0; j < queueList.length(); j++)
    {   if (! QString(queueList[j]).isEmpty())
        {
//          call process
//          QString queueName = queueList[j];
            arguments << "-sq" << queueList[j];
            qDebug() << " arguments sq " << queueList[j];
            procQueueList.start("qconf",arguments);

        }
    }

//  and append for each queue with new project name
//  and store into the system
}

Brgds,

Кныш

Ответы [ 2 ]

1 голос
/ 30 ноября 2009

Позвоните QProcess::waitForFinished(), чтобы дождаться завершения процесса.

0 голосов
/ 01 декабря 2009

Использование подхода waitForFinished из цикла в основном потоке приведет к зависанию приложения. Вместо этого хорошей альтернативой является помещение цикла в отдельный поток или создание очереди процессов для запуска и последующего запуска по завершенному сигналу от предыдущего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...