G
Gast
Gast
Hallo!
Ich schreibe gerade ein Programm, das diverse Daten einlesen soll. Dabei soll ein Dialog mit einem Fortschrittsbalken und einem Abbruch-Button angezeigt werden. Der Benutzer sollte die Möglichkeit haben mittels Abbruch-Button den Lesevorgang abzubrechen, nicht aber irgend welche anderen Programmfunktionen zu aktivieren.
Nun habe ich mir gedacht, dass ich das folgendermassen machen könnte:
(1) Ein modaler Dialog zeigt den Fortschritt an. Dadurch wäre das Programm blockiert und der Benutzer kann nur mehr warten bis der Lesevorgang beendet ist oder den Abbruch-Button drücken. Der Dialog schliesst sich automatisch, wenn der Fortschrittsbalken seinen Maximalwert erreicht hat.
(2) Die Leseoperation müsste dann als Thread realisiert werden. Den Fortschrittsbalken könnte man mittels Observer-Pattern updaten.
Da ich noch wenig Erfahrung mit solchen Dingen habe, habe ich noch zwei Fragen:
(1) Ist das Design so ok, oder gibt es einen besseren Weg.
(2) Wenn bei der Leseoperation ein Fehler auftritt, dann würde der modale Dialog ja weiterhin alles blockieren. Brauche ich da eventuell noch einen 2. Thread, der den Dialog und den Lesevorgang startet und auf den das Hauptprogramm wartet. Oder wie könnte man das lösen?
Ich schreibe gerade ein Programm, das diverse Daten einlesen soll. Dabei soll ein Dialog mit einem Fortschrittsbalken und einem Abbruch-Button angezeigt werden. Der Benutzer sollte die Möglichkeit haben mittels Abbruch-Button den Lesevorgang abzubrechen, nicht aber irgend welche anderen Programmfunktionen zu aktivieren.
Nun habe ich mir gedacht, dass ich das folgendermassen machen könnte:
(1) Ein modaler Dialog zeigt den Fortschritt an. Dadurch wäre das Programm blockiert und der Benutzer kann nur mehr warten bis der Lesevorgang beendet ist oder den Abbruch-Button drücken. Der Dialog schliesst sich automatisch, wenn der Fortschrittsbalken seinen Maximalwert erreicht hat.
(2) Die Leseoperation müsste dann als Thread realisiert werden. Den Fortschrittsbalken könnte man mittels Observer-Pattern updaten.
Da ich noch wenig Erfahrung mit solchen Dingen habe, habe ich noch zwei Fragen:
(1) Ist das Design so ok, oder gibt es einen besseren Weg.
(2) Wenn bei der Leseoperation ein Fehler auftritt, dann würde der modale Dialog ja weiterhin alles blockieren. Brauche ich da eventuell noch einen 2. Thread, der den Dialog und den Lesevorgang startet und auf den das Hauptprogramm wartet. Oder wie könnte man das lösen?