Asynchron zu Synchron machen...

Alles rund um die Programmierung mit Qt
Antworten
chrislo1976
Beiträge: 105
Registriert: 24. Februar 2008 09:45

Asynchron zu Synchron machen...

Beitrag von chrislo1976 »

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
dazedly
Beiträge: 197
Registriert: 3. Oktober 2010 15:38
Kontaktdaten:

Re: Asynchron zu Synchron machen...

Beitrag von dazedly »

Also die Eventloop ist nach meinem Wissen die Beste Möglichkeit für solche Dinge .:) Nutzen wir auch mehrfach.
chrislo1976
Beiträge: 105
Registriert: 24. Februar 2008 09:45

Re: Asynchron zu Synchron machen...

Beitrag von chrislo1976 »

Hallo!

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();
nichts "verwerfliches" finden?!

Gruß
Christian
dazedly
Beiträge: 197
Registriert: 3. Oktober 2010 15:38
Kontaktdaten:

Re: Asynchron zu Synchron machen...

Beitrag von dazedly »

Wüsste nicht, was daran verwerflich sein sollte :)
Antworten