qt - qprocess在循环中开始

时间:2009-11-30 14:00:45

标签: qt

我在循环中调用进程。需要确保一个流程在重新启动之前结束。怎么可能。

    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,

kNish

2 个答案:

答案 0 :(得分:1)

调用QProcess::waitForFinished()等待进程终止。

答案 1 :(得分:0)

在主线程的循环内使用waitForFinished方法将冻结应用程序。相反,将循环放在一个单独的线程中,或者使进程队列启动然后在前一个完成的信号上启动是很好的选择。