[英]Detaching a started process
我已经使用QProcess::start()
启动了一个进程,然后我需要将其分离。 我该怎么做? 我没有在Qt文档中找到相关信息。
我知道QProcess::startDetached()
,但是由于程序中的其他代码,我无法使用它(我需要分离进程的启动和分离)。
如果您查看QProcess::~QProcess()
,您将了解QProcess
如何通过其销毁来终止该进程。 另请注意, QProcess::setProcessState()
受保护 ,这意味着您可以使用方法detach()
实现从QProcess
继承的QDetachableProcess
以调用setProcessState(QProcess::NotRunning);
作为一种解决方法。
例如:
class QDetachableProcess : public QProcess
{
public:
QDetachableProcess(QObject *parent = 0) : QProcess(parent){}
void detach()
{
this->waitForStarted();
setProcessState(QProcess::NotRunning);
}
};
然后你可以做这样的事情:
QDetachableProcess process;
process.setEnvironment(QStringList() << "SOME_ENV=Value");
process.start();
process.detach();
你不能在5.1, 见这里 。 评论中还有一个建议,不确定是否对您的案例有用):
变通方法建议:编写一个启动分离进程的帮助程序进程,并在完成所有设置后终止自身。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.