QProcess启动进程以及waitForFinished的问题
QProcess中waitForFinished的问题,当我们执行一个超过30s的动作的时候,int msecs = 30000,那么就会直接finish,像遇到解压文件这种情况并且要等finish时候用解压的文件的时候,就会出现问题。方法1:waitForFinished(-1);表示一直等待,直到进程结束。方法2:循环等待waitForFinished()==true,表示进程结束。1、启动不
·
一、QProcess启动进程
1、启动不带参数进程
QProcess program;
QString cmd = "xxx.exe"; //选择自己要执行exe程序
program.start(cmd);
program.waitForFinished();
2、启动带参数进程
QProcess program;
QString cmd = "xxx.exe";
QStringList args;
args.append("-h");
program.start(cmd, args);
program.waitForFinished();
二、waitForFinished的问题
QProcess中waitForFinished的问题,当我们执行一个超过30s的动作的时候,int msecs = 30000,那么就会直接finish,像遇到解压文件这种情况并且要等finish时候用解压的文件的时候,就会出现问题。
如何解决?
方法1:waitForFinished(-1); 表示一直等待,直到进程结束。比如:
QProcess program;
QString cmd = "xxx.exe";
QStringList args;
args.append("-h");
program.start(cmd, args);
program.waitForFinished(-1);
方法2:循环等待waitForFinished()==true,表示进程结束。比如:
QProcess program;
QString cmd = "xxx.exe";
QStringList args;
args.append("-h");
program.start(cmd, args);
while(!program.waitForFinished())
{
//等待,进程没有结束,只等待超时,其他情况除外(比如:执行失败)
Sleep(1000);
}
更多推荐




所有评论(0)