I'm calling a emit signal1()
from a non Qt thread.
By non Qt thread I mean not from the GUI Event Loop and not from any QThread run() method or any QThread own event loop.
It is simply a pthread (pthread_create()) that calls a method of a QObject which emits signals.
ex:
MyQbject: public QObject
{
...
void emitBunchOfSignals()
{
emit signal1();
emit signal2();
...
}
...
}
the "run" method of my pthread which has a pointer to a MyObject instance (instance that was created within the main Qt GUI thread context NOT the pthread) calls the emitBunchOfSignals()
methods.
Before Qt 4.5 that was nasty. Now, does Qt 4.5 handle this ?
Does it call qApp->PostEvent()
or something so the signal is emitted within the Qt GUI Thread (and thus the slot as well) ?
thanks
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…