• 938阅读
  • 4回复

[讨论]QThread多线程中调用DOS命令 [复制链接]

上一主题 下一主题
离线lwei24
 

只看楼主 倒序阅读 楼主  发表于: 2023-01-09
如题,在QThread子线程中调用QProcess运行DOS命令,其中cmd是DOS命令
  1. m_process->start(cmd);
  2. m_process->waitForFinished(-1);

在关闭窗口时,想退出线程,并一起中断QProcess运行的命令,但是这个好像没有办法中断。不知道各位大佬是怎么解决这个问题的呢?
离线wanger233

只看该作者 1楼 发表于: 2023-01-10
析构函数里关闭这个线程

Widget::~Widget()
{
    m_process->close();
}

或者  初始化时 将窗口设为父
QProcess * m_process = new QProcess(this);

最好确认下析构被调用了 加个输出看看
离线lwei24

只看该作者 2楼 发表于: 2023-01-12
回 wanger233 的帖子
wanger233:析构函数里关闭这个线程
Widget::~Widget()
{
    m_process->close();
....... (2023-01-10 11:09) 

试了,不过好像效果不是很好。
离线zy1233

只看该作者 3楼 发表于: 2023-01-12
关闭窗口时调用QProcess::kill()
离线lwei24

只看该作者 4楼 发表于: 2023-01-13
回 zy1233 的帖子
zy1233:关闭窗口时调用QProcess::kill() (2023-01-12 11:13) 

好的,谢谢
快速回复
限100 字节
 
上一个 下一个