2. Versuch eine Antwort zu bekommen.
Nachdem mir keiner eine Auskunft zu QHTTP geben kann, versuche ich es nochmal anders.
Ich bewege mich in einem Thread und möchte darin ein neues Fenster öffnen. Um damit arbeiten zu können, brauche ich eine 2. Ereignisschleife. In QT Jambi scheint in einem Thread aber keine Möglichkeit zu bestehen, ein weiteres Fenster zu öffnen und dafür eine neue Ereignisschleife zu erstellen?
Wenn doch, wie geht es?
Hat niemand das gleiche Problem oder arbeitet ihr alle nur ohne Threads?
Vielen Dank im Voraus für eine Antwort
voka
Threads in QT Jambi
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
- Beiträge: 300
- Registriert: 3. November 2004 16:15
- Wohnort: Berlin
Es ist auch in QtJambi so, dass GUI Ausgaben nur im MainThread durchgeführt werden können. Auch die Ereignisschleife des QCoreApplication kann man nur im main-thread laufen lassen.
Wenn Du irgendwelche Ergebnisse von Deinem 2. Thread in einem Fenster darstellen möchtest, musst Du wohl den 1. Thread (z.B. durch Signal - Slot über Threads hinweg) benachrichtigen, damit dieser die Darstellung übernimmt.
Im übrigen sendet jedes QThread nach seinem Ende ein Signal aus, auf das man im Haupthread reagieren kann.
Gruß Arne
Wenn Du irgendwelche Ergebnisse von Deinem 2. Thread in einem Fenster darstellen möchtest, musst Du wohl den 1. Thread (z.B. durch Signal - Slot über Threads hinweg) benachrichtigen, damit dieser die Darstellung übernimmt.
Im übrigen sendet jedes QThread nach seinem Ende ein Signal aus, auf das man im Haupthread reagieren kann.
Gruß Arne
Danke für die Antworten. Leider lösen sie nicht mein Problem.
Ich muss in dem Thread auch auf verschiedene Benutzereingaben warten. Baue ich aber eine wait- Schleife ein, reagiert überhaupt nichts mehr. Ich probiere nun schon einige Wochen rum. Aber irgendwie scheine ich das Konzept von QT noch nicht verstanden zu haben. KDE usw. funktioniert doch auch.
Gruß voka
Ich muss in dem Thread auch auf verschiedene Benutzereingaben warten. Baue ich aber eine wait- Schleife ein, reagiert überhaupt nichts mehr. Ich probiere nun schon einige Wochen rum. Aber irgendwie scheine ich das Konzept von QT noch nicht verstanden zu haben. KDE usw. funktioniert doch auch.
Gruß voka
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Ich habe mein Programm umgestellt. Mir war bisher unklar, dass QT so strikt mit Slots/ Signalen arbeitet.
Nun lese ich hintereinander im Main- Programm mit QHTTP in einer Schleife Dateien ein. Das funktioniert. Nur sehr langsam, da immer nur eine Datei nach der anderen gelesen wird. QHTTP ist also intern synchronisiert.
Probiere ich das ganze mit mehreren Threads und mit HTTPClient, ist die gleiche Anzahl Dateien in einem Bruchteil der Zeit heruntergeladen.
Gibt es eine Lösung, um den Download zu beschleunigen?
MfG
voka
Nun lese ich hintereinander im Main- Programm mit QHTTP in einer Schleife Dateien ein. Das funktioniert. Nur sehr langsam, da immer nur eine Datei nach der anderen gelesen wird. QHTTP ist also intern synchronisiert.
Probiere ich das ganze mit mehreren Threads und mit HTTPClient, ist die gleiche Anzahl Dateien in einem Bruchteil der Zeit heruntergeladen.
Gibt es eine Lösung, um den Download zu beschleunigen?
MfG
voka