QT中函数相互调用造成内存泄漏,解决方案

    技术2023-07-09  106

    QT中函数相互调用造成内存泄漏

    解决方案

    解决方案

    通过在同一个类中添加信号槽,无法解决问题,qt似乎对同一个类槽函数直接用的本地函数代替,未使用信号槽机制。在Appinit中使用Lamda表达式调用,失败,emit 发送信号可视为直接调用函数采用定时器循环监测,避免互相调用(妥协了)通过进一步测试,在connect中第五个参数设置为Qt::QueuedConnection可以避免该问题,并且两个函数运行依然在同一个线程中,详情见链接

    问题实例: //形成B->C->A->B的无限循环 connect(this,A,this,B); void B(){ … C(); }

    void C(){ … emit A(); return; }

    Processed: 0.008, SQL: 9