# Einfaches Warten in eine Schleife



## loeppel (23. Aug 2005)

Hallo,

ich hab nun eine Menge über wait und sleep (in einem Thead) gelesen. Leider immernoch nicht herausgefunden wie ich einfach eine Pause nach dem ausführen eines befehels in einer Schleife hinbekomme.

Bin für jeden Tipp Dankbar!

Mfg
loeppel


----------



## byte (23. Aug 2005)

anscheinend hast du bei sleep() nicht richtig aufgepasst 

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Thread.html#sleep(long)


----------



## lin (23. Aug 2005)

```
for (int i = 0; i < 20; i++) {
     System.out.print(i + " ");
     Thread.sleep(200); //<<-- time in ms
}
```

Meinst du sowas?


----------



## Sky (24. Aug 2005)

Soll nach jedem Befehl die gleiche Pause sein? Erklär mal bitte den Sinn dieser Pause...


----------



## loeppel (24. Aug 2005)

Ja nach jedem befehl die selbe (einstellbare) pause.
Es wird versucht eine Webseite "aufzurufen". Die konsturktion mit Thread.sleep hab ich schon versucht, leider hängt sich da das programm auf... - werds aber nochmal testen.

Danke für die Hilfe soweit.

Mfg
loeppel


----------



## lin (24. Aug 2005)

Vielleicht lässt sich auch mit java.util.Timer was machen...
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Timer.html

http://www.galileocomputing.de/open...avainsel_090003256DieKlassenTimerundTimerTask


----------



## loeppel (29. Aug 2005)

Danke für eure Antworten. Funktioniert soweit auch ganz gut. Nur leider kann ich nur Text auf der Console ausgeben. Irgendwelche Eigenschaften von Elementen auf einer GUI (mit Swing) lassen sich nicht ändern während dieser Schleife. Ist für mich etwas ungeeignet. Werde mir mal das mit dem Timer anschauen, vielleicht gehts mit dem.

Mfg
loeppel


----------



## meez (29. Aug 2005)

Doch schon aber nicht direkt wegen der Threadsicherheit..Versuchs mal mit InvokeLater.. (Suchen)


----------



## thE_29 (29. Aug 2005)

Swing is net Threadsafe!

Dh, wenn du im DispatcherThread (sprich ActionListener, KeyListener, etc) ein Thread.sleep machst, dann schläft bei dir der "Hauptthread" der für alles verantwortlich ist (sprich GUI neu zeichnen, etc.)

Daher dieser Fehler!

Du musst entweder einen weiteren Thread aufmachen oder mit Timer arbeiten!


----------



## loeppel (31. Aug 2005)

Ok, vielen Dank für eure Hilfe!
Funktioniert soweit ganz gut, habs jetzt mit Timer gelöst.
Komischerweise wird alles immer zweimal ausgefüht. Werd der sache noch auf den Grund gehen. Das komische dabei ist auch wenn ich ein this.toString() im TimerTask objekt mache (ich habe kein anonymes Objekt benutzt weil ich daten austauschen muss) dann sind es zwei verschiedene...

Mfg
loeppel


----------

