[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 小时前
JavaScript 和 Python 哪个更适合初学者?
开发语言·javascript·python
建军啊12 小时前
php伪协议、代码审计工具和实战
开发语言·php
WYH28712 小时前
为什么在cubeide里勾选了can1,生成的工程里没有can.c?
c语言·开发语言
12 小时前
java关于键盘录入
java·开发语言
马猴烧酒.12 小时前
JAVA后端对象存储( 图片分享平台)详解
java·开发语言·spring·腾讯云
wearegogog12313 小时前
基于MATLAB的D2D仿真场景实现
开发语言·网络·matlab
froginwe1113 小时前
Chart.js 散点图详解
开发语言
独自破碎E13 小时前
【纵向扫描】最长公共前缀
java·开发语言
nuo53420213 小时前
C语言实现类似面向对象的三大特性
c语言·开发语言
321.。13 小时前
深入理解 Linux 线程封装:从 pthread 到 C++ 面向对象实现
linux·开发语言·c++