Hallo Java-Freunde,
bislang habe ich meine Server immer von Thread abgeleitet und in der run()-Methode eine Endlosschleife programmiert:
Kann ich stattdessen auch meinen Server über SwingWorker implementieren. Das Steuern des Threads und die Rückmeldung, wann der Thread beendet ist gefallen mir dabei nämlich deutlich besser. Also:
Es funktioniert jedenfalls, ich frage mich nur, ob SwingWorker dafür gedacht ist, auch niemals endende Serverprozesse zu implementieren. Normalerweise kommt SwingWorker ja zum Einsatz, um eher kurze Threads im Hintergrund laufen zu lassen, um nicht die Swing-GUI zu blockieren.
Was denkt ihr?
bislang habe ich meine Server immer von Thread abgeleitet und in der run()-Methode eine Endlosschleife programmiert:
Java:
public class MyServer extends Thread {
...
public void run(){
while ( ! isInterrupted() ) {
// do something
// sleep a little
}
}
...
}
Java:
// inner class for Thread
class Task extends SwingWorker<Void, Void> {
/*
* Main task. Executed in background thread.
*/
public Void doInBackground() {
// here runs my server task
return null;
}
/*
* Executed in event dispatching thread
*/
public void done() {
// now my server has stopped
// do whatever has to be done here
}
}
Was denkt ihr?