QT跨线程释放Qtimer对象

场景:

1、在线程A创建一个对象列表C,每个对象中包含一个QTimer类,QTimer定时触发用于监测状态。连续触发三次后该对象B需从列表C中移除,并delete。

2、QTimer创建(new)在对象B的构造函数中,释放的信号与槽也在构造函数中,释放QTimer的信号在对象B的析构函数中emit。

3、每次delete对象B时提示--跨线程释放QTimer;

解决办法:

释放QTimer的信号不在对象B的析构函数中触发,而是在线程A中delete对象B的语句前面触发。(delete对象B前建立释放QTimer的信号与槽,再emit。若创建对象B时就建立该信号与槽,可能会误释放掉列表C中的其他对象的QTimer);

以下是查到的相关资料,同时也可查看线程亲和性相关资料;

让QTimer 跑在其他线程

https://blog.csdn.net/weixin_42248496/article/details/80384648

跨线程间的定时器机制----QTimer和QThread

https://blog.csdn.net/beibeix2015/article/details/78738694

查看完整版本: [-- Qt的多线程是不是不能使用QTimer --]

http://www.qtcn.org/bbs/read-htm-tid-86349.html

Qt中QTimer和timerevent的区别与用法

https://blog.csdn.net/beibeix2015/article/details/78738694

Qt多线程中使用QTimer(常见问题汇总)

https://blog.csdn.net/zjgo007/article/details/105403341/

Qt使用多线程的一些心得——2.继承QObject的多线程使用方法

https://blog.csdn.net/czyt1988/article/details/71194457

 

Qt5.9一个简单的多线程实例(类QThread)(第一种方法)

https://blog.csdn.net/naibozhuan3744/article/details/81174681

Qt多线程中调用QTimer

https://blog.csdn.net/hanshuobest/article/details/51494743

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值