【问题标题】:Why is QThread deleteLater still required if I am not using a pointer object of QThread?如果我不使用 QThread 的指针对象,为什么仍然需要 QThread deleteLater?
【发布时间】:2020-11-20 23:31:54
【问题描述】:
class Controller : public QObject
{
    Q_OBJECT

private:
    Two objTwo;

    QThread objQThread;

    Controller();

public slots:
    void mySlot(){}
};

Controller::Controller()
{
    objTwo.moveToThread( &objQThread );

    connect( &objTwo, &Two::emitThisSignal, this, &Controller::mySlot );
    connect( &objQThread, &QThread::finished, &objQThread, &QThread::deleteLater );

    objQThread.start();
}

这里QThread的对象不是指针,所以这里还需要使用deleteLater吗? 在那里使用类对象而不是指针是否合适?

我认为这样可以防止删除。

【问题讨论】:

    标签: c++ multithreading qt qthread


    【解决方案1】:

    这里QThread的对象不是指针,所以这里还需要deleteLater吗?

    没有。

    在那里使用类对象而不是指针是否合适?

    总的来说,如果不需要,不要使用指针。

    我认为这样可以防止删除。

    手动删除可以这样防止,是的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-05
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-08
      • 2019-04-25
      相关资源
      最近更新 更多