QMutex m( QMutex::Recursive ); m.lock(); m.lock(); QWaitCondition w; w.wait( &m );
w.wakeOne();
C++ (Qt)QMutexLocker locker( &m );while( numThread > 0 ) w.wait( &m );
void class::sender( int somevalue ){ QMutex mutex; mutex.lock(); emit send( somevalue ); // послали другому объекту сигнал waiter.wait( &mutex, 1000 ); // и ждем его ответа mutex.unlock(); process( 0.0 );}// это слот, в который другой объект присылает ответvoid class::receiver( float returnedvalue ) // SLOT{ waiter.wakeAll(); process( returnedvalue );}
Объект1::<сигнал>send(somevalue) --> Объект2::<слот>recevie(somevalue)...чего-то сделал...Объект2::<сигнал>sendresult(returnedvalue) --> Объект1::<слот>receiver(returnedvalue)