Threads und Fenster: Best practice?
Verfasst: 17.10.2007 12:08
Hallo,
bei meinem aktuellen Projekt habe ich einen arbeitsintensiven Prozess in
einen Thread ausgelagert. Innerhalb des Threads werden die Gadgets
eines zuvor geöffneten Progress-Fensters mit aktuellen Informationen
versorgt (Fortschrittsanzeige). Der Main-Eventloop sorgt dafür, dass die
Gadgets des Progress-Fensters aktualisiert werden.
Nun kann ich das Progress-Fenster ja erst schließen, wenn der Thread
beendet wurde. Nachfolgend ein Stück Pseudocode, anhand dessen man
erkennen kann, wie ich das in ungefähr gelöst habe,
Prinzipiell funktioniert obige Vorgehensweise problemlos. Dennoch würde
es mich interessieren, ob man das ganze nicht noch ein wenig besser
gestalten kann. Vielleicht gibt es ja auch eine Art 'best practice', nach der
man vorgehen kann.
Danke im voraus & Grüße ... Kiffi
bei meinem aktuellen Projekt habe ich einen arbeitsintensiven Prozess in
einen Thread ausgelagert. Innerhalb des Threads werden die Gadgets
eines zuvor geöffneten Progress-Fensters mit aktuellen Informationen
versorgt (Fortschrittsanzeige). Der Main-Eventloop sorgt dafür, dass die
Gadgets des Progress-Fensters aktualisiert werden.
Nun kann ich das Progress-Fenster ja erst schließen, wenn der Thread
beendet wurde. Nachfolgend ein Stück Pseudocode, anhand dessen man
erkennen kann, wie ich das in ungefähr gelöst habe,
Code: Alles auswählen
Repeat
Select WaitWindowEvent(100)
Case #PB_Event_Gadget
Select EventGadget()
Case #Work
ProgressFensterOeffnen()
WorkThread = StartWorkThread()
EndSelect
Case 0 ; TimeOut
If WorkThread
If IsThread(WorkThread)=0
WorkThread = 0
ProgressFensterSchliessen()
EndIf
EndIf
EndSelect
Until Quit
es mich interessieren, ob man das ganze nicht noch ein wenig besser
gestalten kann. Vielleicht gibt es ja auch eine Art 'best practice', nach der
man vorgehen kann.
Danke im voraus & Grüße ... Kiffi