У меня есть два класса - один работает в главном потоке и выполняет операции с графическим интерфейсом, а другой выполняет некоторые вычисления и выполняет сетевые запросы.
// A member of the class that runs in the main thread
QThread thread;
Вот фрагмент кода метода инициализации классакоторый запускается в основном потоке:
// Create the class that runs in the other thread and move it there
CServerThread * server = new CServerThread;
server->moveToThread(&thread);
// When the thread terminates, we want the object destroyed
connect(&thread, SIGNAL(finished()), server, SLOT(deleteLater()));
thread.start();
В деструкторе для класса, который выполняется в основном потоке:
if(thread.isRunning())
{
thread.quit();
thread.wait();
}
То, что я ожидаю, произойдет, когда поток завершит работу и уничтожитэкземпляр класса CServerThread
.Однако деструктор для класса CServerThread
не вызывается.