H
Hervelon
Gast
Hallo!
Ich habe in meiner GUI eine Art Info-Fenster, welches in regelmäßigen Abständen neue Infos in Form einer XML-Datei von einem Server holt und anzeigt.
Jetzt stellt sich mir die Frage, ob es nicht sinnvoll wäre, das ganze in einen neuen Thread zu packen. Momentan habe ich zwar noch kein Problem damit, alles im GUI-Thread zu machen - sobald die XML-Datei aber mal größer wird oder der Server gerade nur langsam ansprechbar ist, hängt ja dann mein komplettes Programm, richtig?
Die Datei lese ich übrigens mittels URL.openStream - da stellt sich mir auch noch eine andere Frage, die Fehlerbehandlung.
Wenn die angegebene URL nicht gültig ist, dann wird eine MalFormedURLException geworfen, soweit, so gut.
Wenn die URL nicht ansprechbar ist, dann gibts eine IOException, passt also auch.
Was würde aber passieren, wenn der Server gerade verdammt langsam ist? gibt es nach einer gewissen Zeitspanne auch eine Exception oder würde Java tatsächlich eine 300kb XML mit wenigen bytes/sekunde über lange Zeit ziehen? In diesem Fall wäre es natürlich auch noch überlegenswert, eine Art Timeout-Funktion einzubauen. Gibt es da eine elegante Methode? Außer einem weiteren Überwachungsthread fällt mir nämlich nichts ein - in diesem irgendwie mit einem Timer rumhantieren.
Ich muss gleich sagen, ich habe noch nie im Leben mit Threading gearbeitet. Allerdings: ich sehe doch richtig, dass mein Vorhaben nicht allzu fehleranfällig sein wird? Schließlich werden geine gemeinsamen Ressourcen benutzt etc.
Danke!
Ich habe in meiner GUI eine Art Info-Fenster, welches in regelmäßigen Abständen neue Infos in Form einer XML-Datei von einem Server holt und anzeigt.
Jetzt stellt sich mir die Frage, ob es nicht sinnvoll wäre, das ganze in einen neuen Thread zu packen. Momentan habe ich zwar noch kein Problem damit, alles im GUI-Thread zu machen - sobald die XML-Datei aber mal größer wird oder der Server gerade nur langsam ansprechbar ist, hängt ja dann mein komplettes Programm, richtig?
Die Datei lese ich übrigens mittels URL.openStream - da stellt sich mir auch noch eine andere Frage, die Fehlerbehandlung.
Wenn die angegebene URL nicht gültig ist, dann wird eine MalFormedURLException geworfen, soweit, so gut.
Wenn die URL nicht ansprechbar ist, dann gibts eine IOException, passt also auch.
Was würde aber passieren, wenn der Server gerade verdammt langsam ist? gibt es nach einer gewissen Zeitspanne auch eine Exception oder würde Java tatsächlich eine 300kb XML mit wenigen bytes/sekunde über lange Zeit ziehen? In diesem Fall wäre es natürlich auch noch überlegenswert, eine Art Timeout-Funktion einzubauen. Gibt es da eine elegante Methode? Außer einem weiteren Überwachungsthread fällt mir nämlich nichts ein - in diesem irgendwie mit einem Timer rumhantieren.
Ich muss gleich sagen, ich habe noch nie im Leben mit Threading gearbeitet. Allerdings: ich sehe doch richtig, dass mein Vorhaben nicht allzu fehleranfällig sein wird? Schließlich werden geine gemeinsamen Ressourcen benutzt etc.
Danke!