Qt QProcess state()始终返回RUNNING
我执行以下操作来启动进程并等待其完成(在这种情况下,我有意避免使用信号/插槽) 我可以验证test.exe是否存在。但由于某些原因,进程状态总是QProcess::Running。我在Windows上使用Qt 4.8.2。我不认为应该使用Qt QProcess state()始终返回RUNNING,qt,Qt,我执行以下操作来启动进程并等待其完成(在这种情况下,我有意避免使用信号/插槽) 我可以验证test.exe是否存在。但由于某些原因,进程状态总是QProcess::Running。我在Windows上使用Qt 4.8.2。我不认为应该使用state()来检查已关闭的程序,但可以使用类似的东西。我不认为应该使用state()来检查已关闭的程序,但如果“做其他事情”,则可以使用类似的东西。不包括线程事件循环的处理事件,则QProcess永远没有机会更新其状态 waitForFinished如果需要阻
state()
来检查已关闭的程序,但可以使用类似的东西。我不认为应该使用state()
来检查已关闭的程序,但如果“做其他事情”,则可以使用类似的东西。不包括线程事件循环的处理事件,则QProcess
永远没有机会更新其状态
waitForFinished
如果需要阻止线程或连接到finished()
信号。如果“执行其他操作”不包括线程事件循环的处理事件,则QProcess
永远没有机会更新其状态
如果需要阻止线程或连接到finished()
信号,可以选择waitForFinished
。添加进程->waitForFinished(1);在while循环中修复了这个问题。添加一个proc->waitForFinished(1);在while循环中修复了这个问题。
QProcess *myProcess = new QProcess();
QString program = "test.exe";
QStringList args;
myProcess->start(program, args);
myProcess->waitForStarted();
while( myProcess->state() == QProcess::Running )
{
// Do other things...
}