Привет, есть функция 1, при вызове которой генерируется сигнал, и создается новый поток. Часть connect в функции 1 соединяет излучаемый сигнал и открытый слот другого класса.
Поток, созданный в этой функции 1, должен быть уничтожен после завершения другого слота класса.
И при следующем вызове функции 1 должен быть создан новый поток и т. Д.
В настоящее время поток не уничтожается. Как это исправить, т.е. уничтожитьпоток после завершения слота.
Спасибо !!!
void EventListModel::vExtractNextItems()
{
emit(fetch());
t = new testthetimer();
workerThread = new QThread();
t->moveToThread(workerThread);
connect(this, &EventListModel::fetch, t, &testthetimer::timeout);
qInfo() << "Function 1 call "<< QThread::currentThread();
workerThread->start();
}
void testthetimer::timeout()
{
qInfo() << QDateTime::currentDateTime().toString() << " on " << QThread::currentThread();
qInfo() << "total" << QThread::idealThreadCount();
this->thread()->quit();
this->thread()->destroyed();
qInfo() << "running " << this->thread()->isRunning();
qInfo() << QThread::currentThread();
}
и вывод
"Wed Oct 23 17:51:22 2019" on QThread(0x7ffe9c803970)
total 8
running true
current thread is QThread(0x7ffe9c803970)
Function 1 call QThread(0x7ffe9b40efe0)
qml: DownScale
"Wed Oct 23 17:51:24 2019" on QThread(0x7ffe9b5de260)
total 8
running true
current thread is QThread(0x7ffe9b5de260)
Function 1 call QThread(0x7ffe9b40efe0)