繁体   English   中英

Qt避免警告'QProcess:在进程仍在运行时被破坏

[英]Qt avoid warning 'QProcess: destroyed while process still running

最简单的代码:

void test
{
    QProcess p;
    p.start("sleep 10");
    p.waitForBytesWritten();
    p.waitForFinished(1);
}

当然,该过程无法在函数结束之前完成,因此它会显示一条警告消息:

 QProcess: Destroyed while process ("sleep") is still running.

我希望这条消息不被显示 - 我应该在结束函数之前自己销毁这个过程,但我找不到如何正确地做到这一点:p。~QProcess(),p.terminate(),p.kill( )无法帮助我。

注意:我不想等待进程执行,只是在运行时自己杀死它。

您可以根据需要明确终止或终止该过程。 但是,这本身并不足够,因为您实际上需要等待进程终止。 “kill”意味着它会将Unix上的SIGKILL信号发送到进程,并且还需要一些时间来实际完成。

因此,你会写这样的东西:

main.cpp中

#include <QProcess>

int main()
{
    QProcess p;
    p.start("sleep 10");
    p.waitForBytesWritten();
    if (!p.waitForFinished(1)) {
        p.kill();
        p.waitForFinished(1);
    }
    return 0;
}

main.pro

TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM