Цитата(ricky @ 18.4.2011, 22:31 ) | | число запусков каждого из предыдущих трех потоков |
насколько я понимаю эти три предыдущие потока запускаются один раз, т.е., скорее всего, имеется в виду число циклов в тех потоках. Если так, то в каждом из этих трёх потоков нужно завести переменную, считающую кол-во циклов, а в четвёртом вычитывать её из каждого потока и отображать псевдокод:
| Код | class Thread2 /* с Thread1 и Thread3 аналогично*/ { public: int m_counter; void run() { while ( ! m_stop ) { countFibonacci(); drawFibonacci(); m_counter++; } } };
class Thread4 { public: Thread4( Thread1 * t1, Thread2 * t2, Thread3 * t3 ) : m_thread1( t1 ), m_thread2( t2 ), m_thread3( t3 ) {} void run() { while ( ! m_stop ) { int t1 = m_thread1.m_counter; int t2 = m_thread2.m_counter; int t3 = m_thread3.m_counter; char buf[ 420 ]; sprintf( buff, "t1 = %d t2 = %d t3 = %d summ = %d", t1, t2, t3, t1 + t2 + t3 ); sendStringToGui( buff ); } } };
|
|