Ergebnis 1 bis 7 von 7

Thema: Programm warten lassen

  1. #1
    Basti77
    Gast

    Standard Programm warten lassen

    Hallo,

    gibt es ene Möglichkeit ein Javaprogramm eine bestimmte Zeit warten zu lassen, bevor die nächste Anweisung ausgeführt wird? Ich möchte allerdings _keine_ Threads nutzen.

    Ich dachte mir ganz naiv, ich lasse einfach eine Schleife x-mal durchlaufen, wenn ich allerdings
    PHP-Code:
    for(long i=0i<1000000i++)
                    {
                        
                    } 
    mache, dann passiert nichts. Die nächste Anweisung wird genauso schnell ausgeführt wie ohne Schleife. Kanns seins, das der compiler metkt, das da nichts drin ist und das übergeht?

    Wie kann ich sowas realisieren? Danke!

    Basti

  2. #2
    Sesselkleber Avatar von sparrow
    Registriert seit
    17.01.2005
    Beiträge
    628

    Standard

    Du hast Recht.
    Der Kompiler merkt, dass die Schleife die du gebaut hast unnütz ist und umgeht sie entweder, oder erkennt bereits im Voraus, dass der Endwert der Variable sicher ist, sie sonst nichtmehr gebraucht wird und setzt sie automatisch auf den Ednwert.
    Deine Schleife wird also nich durchlaufen.
    Außerdem ist kene schöne Lösung, da du nie weißt wie lange die Schleife braucht um durchlaufen zu werden.


    Also, du hast 2 Möglichkeiten die mir auf Anhiebn einafallen:

    1. :
    PHP-Code:
            try {
                
    Thread.sleep(1000);
            } catch (
    InterruptedException e) {
                
    e.printStackTrace();
            } 
    Hiermit weißt du den Thread an 1 Sekunde zu warten. Der übergebene Wert an sleep ist die Anzahl der ms.
    Auch das Hauptprogramm kann so warten, immerhin ist es ebenfalls ein Thread.


    Möglichkeit Nummer 2:
    Du vergleichst in einer Schleife einfach die Anzahl der vergangenen ms mit CurrentTimeMillis():
    PHP-Code:
            long millisToWait 1000;
            
    long millis System.currentTimeMillis();
            while((
    System.currentTimeMillis() - millis) < millisToWait) {
                
    // Do nothing
            

    In dem Beispielcode ist der Wert von millisToWait der Wert an ms der gewartet wird.

    Ich persönlich finde Möglichkeit 1 besser.


    Gruß
    Sparrow

  3. #3
    Basti77
    Gast

    Standard

    Hallo!

    Ich habe eben mal die zweite Lösung ausprobiert. Das passt schonmal! Dankeschön! :)

    Basti

  4. #4
    fka Gottzilla Avatar von The_S
    Registriert seit
    02.02.2005
    Ort
    Würzburg
    Beiträge
    784

    Standard

    Wenn es nur darum geht die Anwendung eine gewisse Dauer warten zu lassen ist sicherlich die 1. Methode die sauberere! Nur so ne Anmerkung am Rande ;)

  5. #5
    Neuer Benutzer
    Registriert seit
    29.12.2011
    Beiträge
    2

    Standard

    Hallo!

    Bin neu hier im Forum.
    Bei mir funktioniert die von sparrow oben angegebene 2. Methode nicht. Genauer: Sie funktioniert nur in einfach gestrickten Konsolenprogrammen, sobald ich aber ein paar Klassen und eine GUI habe, hängt sie sich auf. Ich habe leider auch keinen genauen Fehlercode, weil der Debugger bei dieser Stelle abstürzt! Ich habe wenig Lust, jetzt auf Threads umzusteigen, weil ich mich in dieses Thema erst noch einarbeiten müsste (bin Anfänger).

    viele Grüße,
    bitte um Antwort,
    Marshmallow

  6. #6
    Neuer Benutzer
    Registriert seit
    29.12.2011
    Beiträge
    2

    Standard

    Also ich meinte: Weiß irgendjemand hier eine Möglichkeit, diese Methode auch in "großen" Programmen einzusetzen?

  7. #7
    Projektleiter
    Registriert seit
    30.11.2005
    Ort
    Bottrop
    Beiträge
    1.472

    Standard

    Für die Thread.sleep Methode brauchst du keine tieferen Kenntnisse von Threads. Nimm die Variante 1, alles andere ist Unsinn.
    Wenn du GUI-Anwendungen schreiben willst, musst du aber unbedingt aufpassen, dass du nicht den EDT (Event Dispatch Thread) blockierst. d.h. sowas auf keinen Fall sowas in Event Handlern (ActionListener, MouseListener, etc.) einbauen! Ansonsten sieht deine Anwendung nämlich aus, als ob sie abgestürzt wäre.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. [C] "Kleines" Problem bei einem einfachen Programm
    Von Plankton im Forum Sonstige Programmiersprachen
    Antworten: 5
    Letzter Beitrag: 28.12.2006, 21:15
  2. Jar Programm nutzen
    Von Jepse im Forum Desktop-Applikationen und Grafik
    Antworten: 11
    Letzter Beitrag: 02.12.2005, 17:55
  3. Einfaches Programm - nur wie ?!
    Von magicforum im Forum Allgemeine Java-Programmierung
    Antworten: 1
    Letzter Beitrag: 02.01.2005, 17:49
  4. Konsolenbefehl unter Linux in Programm einbauen
    Von Nicole66 im Forum Allgemeine Java-Programmierung
    Antworten: 4
    Letzter Beitrag: 03.12.2004, 10:07
  5. fremdes Programm aus Java aufrufen
    Von miri im Forum Allgemeine Java-Programmierung
    Antworten: 1
    Letzter Beitrag: 19.11.2004, 18:49

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Impressum · Tutorials · Nutzungsbedingungen · thematisch sortierte Linklisten · Spendenaufruf · Team · Partnerprojekte

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48