folgendes Problem, ich habe einen QThread der unter gewissen Umständen ein Qtimer startet, so dass ein entsprechender Slot regelmäßig aufgerufen werden soll. Das Problem ist, dass ich dazu eine eigene Eventloop für den Thread starten müsste (exec()). Bei meinem Thread handelt es sich jedoch um eine while-schleife die permanent abgearbeitet werden muss (Siehe Code Schnippsel).
Code: Alles auswählen
void ThreadClass::run()
{
QTimer* o1_curTimer = new QTimer();
while(condition)
{
// hier wird eine Queue geparts die regelmäßig befüllt wird
// und dann unter bestimmten umständen wird dann folgender Code ausgeführt ( der Timer wird nicht in jedem Schleifen durchlaiuf gestartet:
if (NULL != o1_curTimer)
{
connect( o1_curTimer, SIGNAL(timeout()),
this, SLOT(slotMotorCur1()) );
int zahl = 10;
o1_curTimer->start(zahl);
}
...
msleep(2);
...
}// end while
if (NULL!=o1_curTimer)
{
delete(o1_curTimer);
o1_curTimer = NULL;
}
}// end run
void ThreadClass::slotMotorCur1()
{
qDebug() << "Hier!";
}
Hat jemand ne Idee wie ich den QTimer in meinem Thread verwenden kann?
Grüße André