消息关闭
    暂无新消息!

QThread对象销毁问题

问题作者 : 阿J2017-07-04发布
应用场景:一个线程调用一个函数,在该函数中通过new一个新的线程对象并start(),然后该函数返回。当新new出的线程run()结束后,如何销毁线程对象。我在run()函数结束前加了delete this,但是报QMutex异常错误。跪求大师指点,此种应用场景应如何销毁对象,防止内存泄漏。

3个回答

︿ 3
QThread *thread = new QThread(this);
connect(thread, SIGNAL(finished()),thread ,SLOT(deleteLater()));
将线程的结束信号与deleteLater())槽相关联,当线程结束时会delete掉
︿ 2
主线程启动一个超时检测线程,超时线程进行结果检查,规定时间内收到结果返回成功,超时返回失败。主线程启动完超时检测线程后,就去处理其他业务了。超时线程对象如何回收?
︿ 0
1.主线程中可以查询子线程是否在运行中,若没有运行,则可以销毁该指针
2.2楼的方法可行;