【发布时间】:2015-07-06 13:17:08
【问题描述】:
我正在尝试在 Qt 中学习 QThread。我为 QThread 编写了以下代码,该代码运行良好。
QThread* mThread = new QThread;
FaceCutThread* mFaceCut = new FaceCutThread();
mFaceCut->moveToThread(mThread);
connect(mThread, SIGNAL(finished()), mFaceCut, SLOT(deleteLater()));
connect(this, SIGNAL(operateFaceCut(std::string)), mFaceCut, SLOT(processFaceCut(std::string)));
connect(mFaceCut, SIGNAL(isFinisedFaceCut(QImage,bool)), this, SLOT(handleFaceCutResults(QImage,bool)));
mThread->start();
现在我想再添加一个应该作为 QThread 工作的类,例如;
Enroll *mEnroll = new Enroll();
我应该在以前的 mThread 中使用 mEnroll 对象还是应该创建新的 mThread2;
QThread* mThread2 = new QThread;
mEnroll->moveToThread(mThread2);
有什么优点和缺点?
【问题讨论】:
-
创建新线程的一个缺点是创建线程需要时间成本。