Qt deleteLater()弊端

先看官方说明

 

简要信息:

1、该函数不会立刻删除对象,直到进入事件循环(源码如下)

void QObject::deleteLater()

{

         QCoreApplication::postEvent(this, new QDeferredDeleteEvent());

}

 

2、同一个对象可多次使用,队列中只有一个生效

3、线程安全

 

优点:

延迟删除,可使和类相关,正在进行的函数或者事件完成后再删除,防止程序crash。

 

缺点:

延迟删除,即删除时间无法预料,可能在准备删除和删除的时间段(因为不是立刻删除),不经意使用该内存,也会造成程序crash。

posted @ 2021-08-10 01:51  补码  阅读(770)  评论(4编辑  收藏  举报