c++ - 如果我不使用 QThread 的指针对象,为什么仍然需要 QThread deleteLater?
问题描述
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
吗?在那里使用类对象而不是指针是否合适?
我认为这样可以防止删除。
解决方案
这里QThread的对象不是指针,这里还需要用到
deleteLater
吗?
不。
在那里使用类对象而不是指针是否合适?
完全,如果你不需要,不要使用指针。
我认为这样可以防止删除。
这样可以防止手动删除,是的。
推荐阅读
- c++ - 这个在 C++ 中声明的向量是什么意思?
- spring-boot - OpenShift - SpringBoot 为自定义路由提供白标签错误页面。(https)
- c# - Include() 不会在查询中加载关系。它们仅在 collection.load() 或其他表的不相关查询中填写
- javascript - Bootstrap 滑块 - 使用 +/- 按钮进行控制
- angular - 服务值更改时更新组件值Angular 8
- python - 将 lxml etree 文本设置为带有标签的字符串
- python - 如何在 Python 上运行池化 OLS 回归?
- node.js - 无法通过 Node.js 使用 executeMany() 将其插入 Oracle DB
- asp.net - 验证 Auth cookie 是由当前 Session 生成的
- javascript - 量角器:如何单击模态对话框中的按钮(角度元素)