und was hat ein timeout mit deiner zu schnellen slideshow zu tun ???
... etwas mehr Info wäre nett !
... willst du etwa eine Pause in die Show einbauen ... oder wie oder was ??
wenn jemand mal das gleiche problem hat:
der exakte code zum warten lautet:
Code:
try{
Thread.sleep(zeit in ms);
}
catch (InterruptedException e) { }
das try catch gebilde MUSS genutzt werden. eine alternative wäre es den rechner sinnlos zu beschäftigen:
zb eine zählschleife die von 1 bis 10k und in ihr eine variable erhöht wird. sollte man hier kann die grenze der datenwerte kommen, hilft die kombination von mehreren zählschleifen. das ganze ist zwar nicht sehr elegant aber funktioniert wunderbar
Nix gegen dich nobody ... aber der Tipp mit den Schleifen ist nicht gut !!! ... die Zeit, die in den "Sinnlosschleifen" verbracht wird, ist abhängig von der Rechnergeschwindigkeit ... also wird die Wartezeit von Jahr zu Jahr kürzer werden, da die Rechner immer schneller werden !
Also: Warteschleifen IMMER mit Thread.sleep() machen ... denn da wird korrekt gewartet.
Alternativ könnte man sich die Methode sleep auch selber schreiben ( wenn man keinen Bock auf Thread.sleep() hat ):
Code:
public void sleep( long ms ){
long first = System.currentTimeMillis();
while( true ){
if( System.currentTimeMillis() >= ( first + ms ) ){
break;
}
}
Aber ich denke, dass Java das etwas eleganter löst ... zumindest ist da der Rechner nicht die ganze Zeit mit den zeitvergleichen ausgelastet !!
Aktives Warten ist immer schlecht - denn damit stiehlt man anderen Prozessen die Rechenzeit. Das ist im Normalfall nicht besonders schlimm, wenn man aber mal zeitkritische Abläufe behandeln will und hat solche Konstrukte dann ist es unnötiger Aufwand.
Alternativ kann man auch Object.wait(time) anwenden. Falls man dann noch andere Bedingungen ausser der Zeit hat, nutzt man den wait/notify Mechanismus zum aufwecken.
Code:
while (Bedingung nicht erfüllt UND/ODER noch Zeit )
{
try { wait( ZEIT) ; }
catch (InterruptedException e) { ...... }
}
// Aufwecken - z.B. wenn eine Bedingung eingetreten ist (z.B. Tastendruck)
notify()
// oder alle "Schlafenden" wecken
notifyAll()