如何使用 QProcess 等待子进程?
Posted
技术标签:
【中文标题】如何使用 QProcess 等待子进程?【英文标题】:How to wait child process with QProcess? 【发布时间】:2021-07-27 19:05:00 【问题描述】:我正在尝试使用此代码等待子进程:
auto child = new QProcess;
child->start("cmd.exe");
child->waitForFinished();
但是 cmd.exe 没有打开,主程序运行。错误是什么?
我应该如何正确等待? waitForFinished
默认等待 30000 毫秒。如果我想无限等待怎么办?
【问题讨论】:
【参考方案1】:建议使用waitForStarted
(doc)检查返回值看程序是否启动成功,并尝试使用CMD的全路径:"C:/windows/system32/cmd.exe"
。
另外,上网查一下,这个问题已经被here问过了。
要无限等待,您需要使用 -1 (doc) 调用 waitForFinished
:
child->waitForFinished(-1);
【讨论】:
以上是关于如何使用 QProcess 等待子进程?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Windows 上通过 QProcess 启动提升的子进程?
Qt使用QProcess进程间双向通信(linux和win系统)