关于QObject::deleteLater()是否会造成内存泄漏
luike 2018-05-30 08:30:15 一个继承与QThread,重写run的类,如
class CMyThread : public QThread
{
private:
void run();
}
而run的实现是这样
void CMyThread ::run()
{
QTimer timer;//定时器,做超时检测
QEventLoop loop;
connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
m_pLabel = new MyLabel;
timer.start(100);
loop.exec();
m_pLabel->deleteLater();
}
其中m_pLabel 是一个派生于QObject的类对象。
CMyThread 类对象在主UI线程中创建并start,那么这里m_pLabel是否能够被析构?是否存在内存泄漏?
我的理解是,定时器时间到,loop执行了quit之后,当前线程中就没有消息循环了,deleteLater发送的删除消息没有消息循环接收,也就没机会执行。不知道理解的正确不正确?