Hallo Java-Gemeinde,
ich habe ein kleines Webdriver Projekt zusammengebastelt und nun würde ich es gern mittels Multithreading etwas kompfortabler gestalten.
Das Grundgerüst besteht aus 3 Klassen:
- GUI() mit diversen Buttons und einer LogFile Ausgabe
- Listeners() hält alle Listener der Buttons
- Handler() verbindet die GUI() mit den Listenern und hält den Webdriver
Im Moment ist es halt so ich starte den Handler und der ruft mir den Firefox und meine GUI auf.
Auf Knopfdruck wer hätte es gedacht soll nun was im Firefox passieren. Das funktioniert soweit ganz gut.
Mein Problem:
Wenn die Webseite mal hängt oder meine Routinen auf ein unerwartetes Problem stoßen, hängt sich das gesamte Programm auf. Somit nutzt mir die LogFile Ausgabe nix und ich habe auch keine Möglichkeit das Programm zu "unterbrechen".
Meine Idee:
Ich lasse alle 3 Klassen in extra Threads laufen. Wenn die Methode aus dem Listener festhängt, wäre dann die GUI nicht eingefroren und ich könnte dem Handler eine Abbruchmethode geben, welcher den aktuellen Listener stoppt und die Klasse Listeners clean neustartet.
Nun habe ich mich ein wenig belesen und komme einfach nicht weiter. Runnable und Thread ist für mich Neuland und die Standartbeispiele helfen mir nicht, weil ich demnach jede Methode in eine extra runnable Klasse schreiben müsste.
Gibt es nicht einen einfachen Weg meine Idee umzusetzen? ich habe bereits alle 3 Klassen in Threads umgewandelt (extends Thread). Nur irgendwie spreche ich die nun wahrscheinlich falsch an, da sich das Verhalten des Programms nicht geändert hat.
ich habe ein kleines Webdriver Projekt zusammengebastelt und nun würde ich es gern mittels Multithreading etwas kompfortabler gestalten.
Das Grundgerüst besteht aus 3 Klassen:
- GUI() mit diversen Buttons und einer LogFile Ausgabe
- Listeners() hält alle Listener der Buttons
- Handler() verbindet die GUI() mit den Listenern und hält den Webdriver
Im Moment ist es halt so ich starte den Handler und der ruft mir den Firefox und meine GUI auf.
Auf Knopfdruck wer hätte es gedacht soll nun was im Firefox passieren. Das funktioniert soweit ganz gut.
Mein Problem:
Wenn die Webseite mal hängt oder meine Routinen auf ein unerwartetes Problem stoßen, hängt sich das gesamte Programm auf. Somit nutzt mir die LogFile Ausgabe nix und ich habe auch keine Möglichkeit das Programm zu "unterbrechen".
Meine Idee:
Ich lasse alle 3 Klassen in extra Threads laufen. Wenn die Methode aus dem Listener festhängt, wäre dann die GUI nicht eingefroren und ich könnte dem Handler eine Abbruchmethode geben, welcher den aktuellen Listener stoppt und die Klasse Listeners clean neustartet.
Nun habe ich mich ein wenig belesen und komme einfach nicht weiter. Runnable und Thread ist für mich Neuland und die Standartbeispiele helfen mir nicht, weil ich demnach jede Methode in eine extra runnable Klasse schreiben müsste.
Gibt es nicht einen einfachen Weg meine Idee umzusetzen? ich habe bereits alle 3 Klassen in Threads umgewandelt (extends Thread). Nur irgendwie spreche ich die nun wahrscheinlich falsch an, da sich das Verhalten des Programms nicht geändert hat.