16,214
社区成员
发帖
与我相关
我的任务
分享
class Thread:public QThread
{
public slot:
void onTimeout()
{
qDebug()<<"Thread::onTimeout get called from :"<<currentThread();
}
private:
void run()
{
QTimer timer;
connect(&timer,SIGNAL(timeout()),this,SLOT(onTimeout()));
timer.start(1000);
exec();
}
}
int main(int argc, char *argv[])
{
QTimer timer;
timer.start(5000);
Thread t;
t.start();
QObject::connect(&t,SIGNAL(finished()),&t,SLOT(deleteLater()));
QObject::connect(&timer,SIGNAL(timeout()),&t,SLOT(quit()));
return a.exec();
}
SomeClass *a=new SomeClass;
QThread *b=new QThread;
a->movetothread(b);
b->start();
假设a中有一些槽函数。问题是我如何终止a的运行?,是不是直接调用b.quit();就可以了?如果想析构b,是不是在调用quit函数之后再继续调用deletelater?那a什么时候析构?是需要手动析构还是b终止后就直接调用了a的析构函数。
问题有点多,最近看的感觉脑子越来越乱,提前谢谢您的耐心解答。