Applikation in GUI-Thread laufen lassen
Verfasst: 9. Oktober 2009 14:08
Hallo,
ich habe eine Applikation, die ihren kompletten Ablauf in dem selben Thread laufen hat, in der auch die GUI läuft.
Ich habe also speziell ein MainWindow. In dieser Klasse wird ein Ablauf gestartet, der etwa 2 Sekunden dauert.
Für diese 2 Sekunden ist die Oberfläche komplett eingefroren.
Jetzt kann es auch sein, dass der Ablauf n Mal hintereinander läuft, sodass Ausgaben in der Oberfläche garnicht mehr dargestellt werden. Bzw erst dargestellt werden, wenn alle Abläufe durch sind.
Man kann sich in etwa vorstellen, wie lästig eine Oberfläche ist, die zwar arbeitet, aber nicht bedienbar ist. Klicke ich die Oberfläche an, während das Programm noch arbeitet, so erhalte ich auch ständig die Meldung "Keine Rückmeldung".
Ist meine Annahme nun korrekt, dass es sich dabei um die Problematik handelt, dass der Ablauf in dem selben Thread stattfindet, wie auch die GUI? Und ist das Problem anderweitig zu lösen, als einen eigenen Thread für den Ablauf zu starten?
Meinetwegen sind auch Windows- (MSDN) Funktionen ok, das stellt kein Problem dar.
In der Applikation wird noch mit Qt 3.11 gearbeitet. Ich hoffe nicht, dass es dort Probleme mit der Thematik gibt.
LG KK
ich habe eine Applikation, die ihren kompletten Ablauf in dem selben Thread laufen hat, in der auch die GUI läuft.
Ich habe also speziell ein MainWindow. In dieser Klasse wird ein Ablauf gestartet, der etwa 2 Sekunden dauert.
Für diese 2 Sekunden ist die Oberfläche komplett eingefroren.
Jetzt kann es auch sein, dass der Ablauf n Mal hintereinander läuft, sodass Ausgaben in der Oberfläche garnicht mehr dargestellt werden. Bzw erst dargestellt werden, wenn alle Abläufe durch sind.
Man kann sich in etwa vorstellen, wie lästig eine Oberfläche ist, die zwar arbeitet, aber nicht bedienbar ist. Klicke ich die Oberfläche an, während das Programm noch arbeitet, so erhalte ich auch ständig die Meldung "Keine Rückmeldung".
Ist meine Annahme nun korrekt, dass es sich dabei um die Problematik handelt, dass der Ablauf in dem selben Thread stattfindet, wie auch die GUI? Und ist das Problem anderweitig zu lösen, als einen eigenen Thread für den Ablauf zu starten?
Meinetwegen sind auch Windows- (MSDN) Funktionen ok, das stellt kein Problem dar.
In der Applikation wird noch mit Qt 3.11 gearbeitet. Ich hoffe nicht, dass es dort Probleme mit der Thematik gibt.
LG KK