Vorteil mehrerer Event-Loops?

Alles rund um die Programmierung mit Qt
Antworten
nierth
Beiträge: 30
Registriert: 19. November 2008 22:56

Vorteil mehrerer Event-Loops?

Beitrag von nierth »

Hallo,

ich habe so langsam das Gefühl, je weiter ich in Qt vordringe, desto weniger verstehe ich. Was genau ist der Vorteil mehrerer Eventloops? Ich habe bisher erfolgreich mehrere Threads in einer Eventloop genutzt und bisher nie die Notwendigkeit einer zweiten gesehen.

Grüße,

Thomas
RavenIV
Beiträge: 267
Registriert: 21. Januar 2009 14:24
Wohnort: Waldshut

Re: Vorteil mehrerer Event-Loops?

Beitrag von RavenIV »

nierth hat geschrieben: ich habe so langsam das Gefühl, je weiter ich in Qt vordringe, desto weniger verstehe ich. Was genau ist der Vorteil mehrerer Eventloops? Ich habe bisher erfolgreich mehrere Threads in einer Eventloop genutzt und bisher nie die Notwendigkeit einer zweiten gesehen.
Mir geht es genau anderst rum.
Je mehr ich mit Qt mache, je besser gefällt es mir. ;-)
Linux, das längste Text-Adventure aller Zeiten
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Was genau ist der Vorteil mehrerer Eventloops?
Ist eine seltsame Frage... So wie etwa "Wozu braucht man mehrere Pfannen beim Kochen".. Entweder man braucht sie, oder eben nicht.
Beispiel für einen Thread mit eigener Eventloop: Ein Thread soll periodisch eine aufwendige, blockierende Operation (z.B. eine Berechnung oder ein Datenbankupdate) durchführen. Dazu wird in der Run-Methode ein QTimer gestartet, welche nun (aus dem Eventloop des Threads) periodisch die Operation anstösst. Natürlich geht das auch anderst (z.B. mit sleep()), aber durch den Eventloop kann der Thread auch noch auf andere Events (z.B. "Shutdown") reagieren.
Superheftig
Beiträge: 63
Registriert: 6. September 2008 15:20

Beitrag von Superheftig »

Ein Thread braucht genau dann einen eigenen eventloop wenn er QT-Events empfangen muss. Dies ist z.b nötig falls der Thread oder QObjekte, die in diesem Thread erstellts wurden/leben slots besitzten, die asynchron verbunden werden.
Antworten