【发布时间】:2016-05-27 09:12:51
【问题描述】:
我对使用QThread 很陌生。我正在使用 QThread 从 Axis Ip Camera 获取图像。在以下代码的 sn-p 中,我将相机类移动到新线程:
QThread camThread;
camera = new AxisNetworkCamera();
camera->moveToThread(&camThread);
camThread.start();
connect(camera, SIGNAL(imageUpdate(QImage)), this, SLOT(upDateImage(QImage)));
connect(camera, SIGNAL(cameraDisconnected()), this, SLOT(cameraDisconnected()));
connect(&camThread, &QThread::finished, &camThread, &QThread::deleteLater);
connect(camera, &AxisNetworkCamera::destroyed, &camThread, &QThread::quit);
我正在调用启动相机的函数:
QMetaObject::invokeMethod(camera, "deviceStartup", Qt::QueuedConnection, Q_ARG(QString, QString::fromStdString(streamUrl)));
应用程序运行良好,当我关闭它时也可以正常关闭,但我担心的是一些警告消息。
第一个是我启动相机的时候:
Type conversion already registered from type QPair<QByteArray,QByteArray> to type QtMetaTypePrivate::QPairVariantInterfaceImpl
第二个是当我关闭应用程序时:
QThreadStorage: Thread 0x7fffb8004da0 exited after QThreadStorage 7 destroyed
我应该担心这些消息吗?它们,特别是第二个 1,是否意味着任何内存管理不善?
谢谢
【问题讨论】: