社区
Qt
帖子详情
一个对象被moveToThread()以后,谁负责在适当的时候析构它?
hind24
2013-03-20 04:47:32
对象被移动到另一个线程之前,不能有parent,可是被移动之后,谁来调用它的析构函数?在哪个线程里调用?
我现在分别在堆上和栈上都建立过这样的对象,然后移到工作线程,没有显式析构这个对象,调试也没有任何报错,怎么知道是否发生了内存泄露?
...全文
307
1
打赏
收藏
一个对象被moveToThread()以后,谁负责在适当的时候析构它?
对象被移动到另一个线程之前,不能有parent,可是被移动之后,谁来调用它的析构函数?在哪个线程里调用? 我现在分别在堆上和栈上都建立过这样的对象,然后移到工作线程,没有显式析构这个对象,调试也没有任何报错,怎么知道是否发生了内存泄露?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
渡世白玉
2014-03-22
打赏
举报
回复
谁建的谁析构、、 一般还是需要在主线程执行析构函数、、、 你也可以连接线程的finished信号,连接到deletelater, 推出前先退出所有线程、、
moveToThread
与
析
构
的问题
在使用QObject::
moveToThread
(thread)
以后
,QObject的代码将会在thread线程中运行,但是当停止且删除thread线程后,并不会
析
构
QObject
对象
,这时需要在创建QObject的
对象
中删除它,否则可能会存在内存泄露(待验证,但是删除thread后,删除QObject并不会出错)。 另外,不能在删除thread之前删除QObject,因为Q
Qt 多线程::
moveToThread
我有一个doWork函数希望在另一个线程中执行,我需要创建一个新线程,将doWork所在类的
对象
放到新线程中,开启新线程后,执行doWork函数。3.通过
moveToThread
将worker
对象
从当前线程“推”到另一个线程workerThread。2.继承自QObject的类Worker中定义doWork函数。5.开启线程workerThread.start()1.创建一个新线程 workerThread;4.绑定一些线程开始和结束执行的信号槽。
Qt多线程编程之
moveToThread
moveToThread
方法本质上就是将一个
对象
放在线程上去执行了 QThread官网文档
moveToThread
文档 这里把我认为文档中需要注意的内容摘出来 一定要通过槽函数的形式去调用函数, 要注意!你创建的QThread
对象
实例,仍然存活在主线程上,而非子线程。所以如果你直接调用其中的函数,那么还是在主线程上运行的。 该方法并不是线程安全的。 注意事项 目前来看,
moveToThread
似乎是将主线程中的
对象
复制了一份到子线程,因为当我退出子线程的时候,他居然调用了这个
对象
的
析
构
函数,而调用
析
构
关于Qt多线程
moveToThread
很多人容易忽略的地方
关于
moveToThread
的使用方法很多的人都有写,今天记录一下我在做项目时候遇到的一些容易忽略的点。 一、线程的
构
造函数和主线程的关系 这是一个很容易被忽略的点,我看到很多人都提问,为什么我在子线程里面delete我的成员变量会报错。比如下面子线程使用的QTimer #ifndef A_H #define A_H #include <QTimer> Class A { public: A(); ~A(); private: QTimer* m_timer; } #endif //
使用
moveToThread
时的内存释放以及注意事项
在Qt中,使用线程主要有两种方式。 1、自定义线程类,继承自QThread,并重写run方法即可。该方法就不再阐述了。 2、就是推荐使用的方法。 示例代码如下: 1、自定义Worker类,将线程中的逻辑在该类中以槽函数的方式实现: Worker.h #ifndef WORKER_H #define WORKER_H #include <QObject> class W...
Qt
16,235
社区成员
26,649
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章