[Qt] deleteLater 和 delete

文章目录

deleteLater

deleteLater 是 QObject 类对象的成员函数,用于延迟删除一个 QObject 类对象。deleteLater 依赖于事件循环,调用 deleteLater 后本质是发送了一个 DeferrerDelete 事件,在事件循环处理中把对象删除。

deleteLater 会在当前对象的所有事件处理完成后再删除对象,deleteLater 会在当前对象的所有事件处理完成后再删除对象。

cpp 复制代码
//工作对象工作完成,停止线程
QObject::connect(workObject,&WorkObject::workFinished,[&](){
    workThread->quit();
    workThread->wait();
});
//工作线程停止,删除工作对象
QObject::connect(workThread,&QThread::finished,workObject,&WorkObject::deleteLater );
//工作对象销毁,删除工作线程
QObject::connect(workObject,&WorkObject::destroyed,workThread,&QThread::deleteLater );

delete

delete 是立即删除对象,对象的既有事件不再处理。

参考链接

Qt deleteLater

相关推荐
小菜鸡桃蛋狗12 小时前
C++——vector
开发语言·c++·算法
wicb91wJ612 小时前
手写一个Promise,彻底掌握异步原理
开发语言·前端·javascript
小小仙。13 小时前
IT自学第三十七天补充
java·开发语言
少司府13 小时前
C++基础入门:初识模板
开发语言·c++·c·模板·函数模板·类模板·泛型编程
jinanwuhuaguo13 小时前
OpenClaw范式深度剖析:从技术突破到安全治理的系统性研究(第二篇)
开发语言·人工智能·安全·架构·kotlin·openclaw
lly20240613 小时前
C++ 命名空间
开发语言
问水っ13 小时前
Qt高级编程 第7章 用QtConcurrent实现线程处理
java·开发语言
代码中介商13 小时前
C语言进程管理与内存管理深度解析
c语言·开发语言
噜噜噜噜鲁先森13 小时前
STL——String类
开发语言·c++·算法
沐知全栈开发13 小时前
Bootstrap 下拉菜单
开发语言