Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QProcess state()始终返回RUNNING_Qt - Fatal编程技术网

Qt QProcess state()始终返回RUNNING

Qt QProcess state()始终返回RUNNING,qt,Qt,我执行以下操作来启动进程并等待其完成(在这种情况下,我有意避免使用信号/插槽) 我可以验证test.exe是否存在。但由于某些原因,进程状态总是QProcess::Running。我在Windows上使用Qt 4.8.2。我不认为应该使用state()来检查已关闭的程序,但可以使用类似的东西。我不认为应该使用state()来检查已关闭的程序,但如果“做其他事情”,则可以使用类似的东西。不包括线程事件循环的处理事件,则QProcess永远没有机会更新其状态 waitForFinished如果需要阻

我执行以下操作来启动进程并等待其完成(在这种情况下,我有意避免使用信号/插槽)

我可以验证test.exe是否存在。但由于某些原因,进程状态总是QProcess::Running。我在Windows上使用Qt 4.8.2。

我不认为应该使用
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...
}