比如有一个blueToothWorker,继承了QThread,实现了run方法。
用的时候如果直接
blueToothWorker bw;
那么该线程变量就是在函数栈上分配,一旦函数结束,线程没执行完,线程变量就被回收了。
正确用法是堆上分配。并通过connect函数自动回收。
void BluetoothMonitor::getBluetoothDataFromConDev()
{blueToothWorker* bw = new blueToothWorker();QObject::connect(bw, &QThread::finished, bw, &QObject::deleteLater);bw->start();
}