![](/img/trans.png)
[英]Qt avoid warning QProcess: destroyed while process still running (Assistant)
[英]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信號發送到進程,並且還需要一些時間來實際完成。
因此,你會寫這樣的東西:
#include <QProcess>
int main()
{
QProcess p;
p.start("sleep 10");
p.waitForBytesWritten();
if (!p.waitForFinished(1)) {
p.kill();
p.waitForFinished(1);
}
return 0;
}
TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.