簡體   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