QProcess state()始终返回RUNNING

时间:2016-10-25 12:40:23

标签: qt

我执行以下操作以启动进程并等待其完成(在这种情况下我故意避免使用SIGNAL / SLOTS)。

QProcess *myProcess = new QProcess();
QString program = "test.exe";
QStringList args;
myProcess->start(program, args);
myProcess->waitForStarted();

while( myProcess->state() == QProcess::Running )
{
    // Do other things...
}

我可以验证test.exe是否退出。但是进程状态由于某种原因始终是QProcess :: Running。我在Windows上使用Qt 4.8.2。

2 个答案:

答案 0 :(得分:1)

如果"做其他事情"不包括处理线程事件循环的事件,state永远不会有机会更新其waitForFinished

finished()如果需要阻止线程或连接到User信号,则为name

答案 1 :(得分:0)

我认为state()不应该用于检查已关闭的程序,但您可以使用while(!waitForFinished(1))之类的内容。