【发布时间】:2013-01-25 15:51:12
【问题描述】:
为了通过设置标志(然后从线程内返回)来启动停止线程,我需要与它通信。
线程是这样实现的
MyClass* obj = new MyClass(0);
connect( this,SIGNAL( stop() ),obj, SLOT(stop()));
emit stop(); // slot is called (qDebug output)
MyThread = new QThread;
obj->moveToThread(MyThread);
connect( ... started() ... quit() ... finished() ... deleteLater() ...
....
emit stop(); // slot isn't called (qDebug output)
插槽还没有任何逻辑,它只是使用 qDebug() 输出。 对象创建和连接发生在主窗口方法中。
不幸的是,我不知道自己做错了什么:一旦将对象移动到线程中,插槽就不再运行了。
【问题讨论】:
-
你是否在第二个线程中运行事件循环?
标签: c++ qt signals-slots qthread