工作记录

1.QT里模板类和Q_OBJECT存在冲突。如果有实际需求,可以去实现一个非模板类的基类,在这个类中定义信号槽,最后由模板类继承该基类。

2.quit()函数
程序里构造了子线程类,且调用quit()作为退出方式的时候,quit应该放在子线程类的析构函数中,当子线程结束(比如run函数运行结束线程结束),自动调用析构,就完成了线程的退出。
如果通过信号槽来实现主线程通知子线程调用quit进行退出,注意不要在槽函数中执行qui。在槽函数中执行quit,实际上相当于在主线程内调用quit,是对主线程执行quit,并不是对子线程执行quit

3.线程冲突——QObject: Cannot create children for a parent that is in a different thread.
(Parent is xxx(0x5c12d0), parent's thread is QThread(0x317705a0), current thread is YYY(0x5c1220)
原因:在我的程序中,xxx是继承QThread的单例模式类,YYY是主线程。
xxx的一个成员函数通过new申请空间的时候,使用了this作为参数,这时这个this就指向的是xxx自己生成的子线程的空间
但是当YYY主线程调用xxx类对应函数的时候,这时再newQNetworkAccessManager实例,this参数就变成指向主线程的空间
这是个异常,不是bug,暂时没有让程序崩溃。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值