我在循环中调用进程。需要确保一个流程在重新启动之前结束。怎么可能。
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
答案 0 :(得分:1)
调用QProcess::waitForFinished()
等待进程终止。
答案 1 :(得分:0)
在主线程的循环内使用waitForFinished方法将冻结应用程序。相反,将循环放在一个单独的线程中,或者使进程队列启动然后在前一个完成的信号上启动是很好的选择。