Hallo zusammen!
Ich habe eine asynchrone Klasse die mehrere Schritte anhand Signal-Slot-Verbindungen ausführt.
Von einer anderen Klasse aus würde ich gern einen blockierenden Aufruf (wie z.B. waitForFinished) machen, um danach sicher zu sein dass die asynchrone Klasse zu diesem Zeitpunkt auch wirklich fertig ist.
Ich weiß von 2 Möglichkeiten:
Entweder mit einer lokalen QEventLoop oder einer Endlosschleife/processEvents() arbeiten.
Weiß evtl. noch jemand andere Möglichkeiten, oder kann mir zu einer der beiden Möglichkeiten raten bzw. auch davon abraten?
Danke schon mal für Infos!
Gruß
Christian
Asynchron zu Synchron machen...
-
- Beiträge: 105
- Registriert: 24. Februar 2008 09:45
Re: Asynchron zu Synchron machen...
Also die Eventloop ist nach meinem Wissen die Beste Möglichkeit für solche Dinge . Nutzen wir auch mehrfach.
-
- Beiträge: 105
- Registriert: 24. Februar 2008 09:45
Re: Asynchron zu Synchron machen...
Hallo!
Du würdest also daran:
nichts "verwerfliches" finden?!
Gruß
Christian
Du würdest also daran:
Code: Alles auswählen
// create a local event loop
// stops, if request was finished
QEventLoop ev;
connect(this, SIGNAL(finished()), &ev, SLOT(quit()));
// trigger sending of sms and wait for finished
send();
ev.exec();
Gruß
Christian
Re: Asynchron zu Synchron machen...
Wüsste nicht, was daran verwerflich sein sollte