[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 小时前
后端php连接SQL Server数据库报错解决方案
开发语言·数据库·php
冰暮流星12 小时前
javascript之事件冒泡与事件捕获
开发语言·前端·javascript
Rust研习社12 小时前
Rust 高性能内存缓存 moka 完全指南
开发语言·后端·缓存·rust
鸟儿不吃草12 小时前
Android Java 自定义TextView点击取词,类似百度翻译的点击一段英文中的某个单词,可以显示点击了哪个单词
android·java·开发语言
wefg112 小时前
【C语言】用 C 语言实现多态
c语言·开发语言
threelab12 小时前
Three.js 动态旋转同心圆着色器 | 三维可视化效果
开发语言·javascript·着色器
奶茶树12 小时前
【STL/数据结构】哈希表和unordered系列容器的封装
开发语言·c++·散列表
Brilliantwxx12 小时前
【C++】初步认识STL(3)
开发语言·c++·笔记·算法
charlie11451419113 小时前
通用GUI编程技术——图形渲染实战(四十)——深度缓冲与3D变换:从平面到立体
开发语言·c++·平面·3d·图形渲染·win32
小张同学82413 小时前
-RAG检索增强生成让智能体拥有企业级专属知识库
开发语言·python·架构·pycharm