PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : thread, sleep



Tobiask
26-09-2006, 16:29
hi,

wie kann ich einen thread alle 3 sekunden neu laufen lassen?
also immer komplett durchgehen, 3sek warten und neu durchgehen, weiß das jemand?

mfg tobias

peschmae
26-09-2006, 17:11
Die Thread Klasse hat ja eine Methode sleep() - eigentlich hast du deine Frage selber schon beantwortet. Oder übersehe ich da was?

MfG Peschmä

Tobiask
26-09-2006, 17:13
Die Thread Klasse hat ja eine Methode sleep() - eigentlich hast du deine Frage selber schon beantwortet. Oder übersehe ich da was?

MfG Peschmä

hm, ich bin was verwirrt, ich möchte einen messwert alle 3 sekunden updaten, nur irgendwie bekomm ich das noch nicht so ganz hin ^^

bischi
26-09-2006, 17:17
try
{
Thread.sleep(3000);
}catch(InterruptedException ie){
System.out.println("An error has occured: " + ie);
}

Wobei dieser Code so übernommen werden muss - auch wenn deine Klasse (hoffentlich) nicht Thread heisst!

MfG Bischi

Tobiask
26-09-2006, 17:21
danke, ich gug ma was rum!

falke2203
26-09-2006, 17:29
@Bischi: Eine InterruptedException bedeutet nicht unbedingt, dass ein Fehler aufgetreten ist. Manchmal ist das auch einfach eine gewollte Unterbrechung... :)

bischi
26-09-2006, 20:06
@Bischi: Eine InterruptedException bedeutet nicht unbedingt, dass ein Fehler aufgetreten ist. Manchmal ist das auch einfach eine gewollte Unterbrechung... :)
Aber definitiv nicht, wenn ich meinem Thread sage, er soll 3 Sekunden lang nichts machen ;)

MfG Bischi

falke2203
26-09-2006, 21:01
Auch dann. Vielleicht sogar gerade dann. Wenn ich das richtig verstanden habe, sollen alle drei Sekunden irgendwelche Daten ausgelesen werden. Was machst du denn, wenn durch ein externes Ereignis (im Sinne von außerhalb des 3-Sek-Lese-Threads) ein erneutes, unmittelbares Auslesen notwendig wird, während gerade geschlafen wird?

Tobiask
27-09-2006, 05:56
warum sollte von außen ein auslesen notwenig werden?
das ganze ist ein feuchtigkeitssensor, der über rs232 ausgelesen wird.
das reicht alle 3 sek. find ich, oder?

falke2203
27-09-2006, 06:19
Natürlich hat diese Exception-Diskussion nicht wirklich etwas mit deiner konkreten Implementierung zu tun. Vielmehr geht es allgemein um die Frage, ob eine Ausnahme (im Sinne einer Exception) in einem ähnlich oder vergleichbar gelagerten Szenario sinnvoll auch für etwas anderes als eine Fehlermeldung verwendet werden kann. Sorry, wenn wir deinen Thread dafür missbrauchen :)

bischi
27-09-2006, 07:31
Natürlich hat diese Exception-Diskussion nicht wirklich etwas mit deiner konkreten Implementierung zu tun.
Also meine schon ;)


Vielmehr geht es allgemein um die Frage, ob eine Ausnahme (im Sinne einer Exception) in einem ähnlich oder vergleichbar gelagerten Szenario sinnvoll auch für etwas anderes als eine Fehlermeldung verwendet werden kann.

Sicherlich - beispielsweise wenn zwei Threads miteinander kommunizieren und der zweite den ersten aufwecken soll, dieser aber spätestens nach 10 Sekunden selbst weiterarbeiten soll... Aber das war hier ja nun wirklich nicht gefragt :D

MfG Bischi