Hi,
ich habe eine Netzwerkanwendung bei mir laufen, in der ich einen Timer programmiert habe (also den Timer hab ich hier als Codeschnipsel im Forum gefunden). Das Programm läuft so ab, dass der Server an die verschiedenen Clients eine Nachricht schickt - haben die Clients die Nachricht erhalten, so startet der Timer. Der Code des Timers sieht folgendermaßen aus:
Das Problem ist, dass der Timer auf verschiedenen Client-Rechnern unterschiedlich schnell herunterläuft (Countdown)!!! Wie gesagt, die Clients bekommen gleichzeitig das Startsignal, der Timer beginnt daraufhin von 60 herunterzuzählen (im Sekundentakt); aber irgendwann ist der eine Client schon bei 40 Sekunden während der andere schon bei 35 Sekunden ist!!!
Der Timer ist in eine relativ komplexe GUI eingebettet, auf der nebenbei Aktionen ausgeführt werden (z.B. werden Werte in Textfeldern angepasst etc.). Manchmal kommt es auch vor, dass der Timer dann ganz zum Stillstand kommt (was dann besonders ärgerlich ist weil dann meine gesamte Netzwerkkommunikation betroffen ist).
Irgendwie muss an der Implementierung des Timers was faul sein - kann man den besser implementieren (z.B. soll er besser in einen Thread gepackt werden, weil er ja im Prinzip nebenher laufen soll - parallel zu den Tätigkeiten in der GUI)?
Bitte um Hilfe - ist ziemlich dringend!
Danke schon mal!
Gruß
Dominik
ich habe eine Netzwerkanwendung bei mir laufen, in der ich einen Timer programmiert habe (also den Timer hab ich hier als Codeschnipsel im Forum gefunden). Das Programm läuft so ab, dass der Server an die verschiedenen Clients eine Nachricht schickt - haben die Clients die Nachricht erhalten, so startet der Timer. Der Code des Timers sieht folgendermaßen aus:
Code:
count = 60;
countdown = count;
timer1 = new Timer(1000, new ActionListener(){
public void actionPerformed(final ActionEvent e){
}
});
timer1.setInitialDelay(0);
timer2 = new Timer(count*1000, new ActionListener() {
public void actionPerformed(final ActionEvent e) {
//sobald actionPerformed hier aufgerufen wird, erfolgen weitere Ereignisse
timer1.stop();
timer2.stop();
}
});
timer1.start();
timer2.start();
Das Problem ist, dass der Timer auf verschiedenen Client-Rechnern unterschiedlich schnell herunterläuft (Countdown)!!! Wie gesagt, die Clients bekommen gleichzeitig das Startsignal, der Timer beginnt daraufhin von 60 herunterzuzählen (im Sekundentakt); aber irgendwann ist der eine Client schon bei 40 Sekunden während der andere schon bei 35 Sekunden ist!!!
Der Timer ist in eine relativ komplexe GUI eingebettet, auf der nebenbei Aktionen ausgeführt werden (z.B. werden Werte in Textfeldern angepasst etc.). Manchmal kommt es auch vor, dass der Timer dann ganz zum Stillstand kommt (was dann besonders ärgerlich ist weil dann meine gesamte Netzwerkkommunikation betroffen ist).
Irgendwie muss an der Implementierung des Timers was faul sein - kann man den besser implementieren (z.B. soll er besser in einen Thread gepackt werden, weil er ja im Prinzip nebenher laufen soll - parallel zu den Tätigkeiten in der GUI)?
Bitte um Hilfe - ist ziemlich dringend!
Danke schon mal!
Gruß
Dominik