1、QThread安全退出
线程创建以及退出示例
创建
TestObject* object = new TestObject;
QThread* thread = new QThread;
object->moveToThread(thread );
connect(thread,&QThread::finished,object,&TestObject::deleteLater); // 退出后释放TestObject对象资源
connect(thread,&QThread::finished,thread,&QThread::deleteLater); // 退出后释放QThread对象资源
thread->start();
退出
thread->quit(); // 也可以使用thread->exit(0);
thread->wait();
thread = nullptr;
object = nullptr;
2、QThread类的finished信号
thread->start();调用的函数完成后才会发出finished信号。可以是QThread::Run函数,也可以是自己定义类TestObject::ABC的Run函数完成退出后发出finished信号。