簡體   English   中英

QThread ::終止vs殺死

[英]QThread::terminate vs kill

我在QThread中運行了一個BASH腳本(QProcess阻塞)(在C ++中)。 這個BASH腳本包含大量文件,可以運行半小時。

如果用戶想要關閉我的程序,我需要殺死我的BASH腳本。 但是怎么樣? QThread :: Quit將等待BASH程序在處理信號之前終止,QThread :: Terminate文檔說它可能會立即殺死一個線程。

我想要相當於'kill -9 myscript'。 有沒有一個合適的Qt方式來做到這一點?

  1. 不要使用其他線程。 這絕不是必要的。
  2. 永遠不要使用任何waitForXxx方法。
  3. 使用QProcess::killQProcess::kill進程。
  4. 使用QProcess的信號在過程改變狀態時得到通知,例如完成。

我想要相當於'kill -9 myscript'。 有沒有一個合適的Qt方式來做到這一點?

來自Qt的文檔http://doc.qt.io/qt-5/qprocess.html#kill

void QProcess :: kill()

殺死當前進程,使其立即退出。

在Windows上,kill()使用TerminateProcess,在Unix和macOS上, SIGKILL信號被發送到進程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM