2016-04-12 4 views
0

Wie kann implementieren, Timer auf Scala dow? Alles was ich möchte timer, die 10 Sekunden vor dem Fortfahren in meiner Methode zählen.Implementieren Sie Countdown-Timer auf der Skala

Alles fand ich ist diese Stopwatch:

Paket sieht

class Stopwatch { 
    var start = System.currentTimeMillis() 
    def elapsed = System.currentTimeMillis() - start 
    def printElapsed(msg: String) = { 
    val delta = elapsed 
    new Thread(new Runnable { 
     def run = { 
     System.out.println(msg + " time ellapsed: " + delta + "ms") 
     } 
    }).start() 
    } 
    def restart = { 
    start = System.currentTimeMillis() 
     new Thread(new Runnable { 
     def run = { 
     System.out.println("------restart------") 
     } 
    }).start() 
    } 
} 
+0

Wenn Sie nur eine Verzögerung wünschen, schauen Sie in 'Thread.sleep' nach. – Aivean

Antwort

0

Wenn Sie spezielle Art und Weise strukturiert werden, unterstützen wollen es richtig, nicht blockierende Ausführung Ihres Programms müssen. Ob Sie Akka verwenden scheduler:

system.scheduler.scheduleOnce(50 milliseconds) { 
    // call the rest of your method 
} 

oder Future/Promise - ein Versprechen, das nie abgeschlossen und Sie es mit einer Dauer von 10 Sekunden ausgeführt werden.

Wenn das ein Overkill ist und es Ihnen nichts ausmacht zu blockieren Verwendung Thread.sleep(10000) - Ihr Thread wird für diese Zeit verschwendet werden. Eine ähnliche Blockierungslösung ist: Scala - ScheduledFuture.