【发布时间】:2018-03-27 18:59:21
【问题描述】:
我在 QThread(C++ 中)中有一个 BASH 脚本运行(QProcess 阻塞)。这个 BASH 脚本 tar 了很多文件,可以运行 1/2 小时。
如果用户想要关闭我的程序,我需要终止我的 BASH 脚本。但是怎么做? QThread::Quit 将在处理信号之前等待 BASH 程序终止,QThread::Terminate 文档说它可能会立即终止一个线程。
我想要'kill -9 myscript'的等价物。有没有合适的 Qt 方法来做到这一点?
【问题讨论】:
-
不看代码很难说,但我怀疑你最好通过非阻塞
QProcess运行bash脚本(使用信号/槽来跟踪状态变化) 然后使用QProcess::terminate或QProcess::kill如果您需要强制终止进程。我认为QThread只是妨碍了这里。
标签: c++ qt kill qthread qprocess