Dart: Structured web apps [10] Stopwatch

DartにはStopwatchインタフェースというものが用意されています。これを使うと、簡単にストップウォッチが実現できます。

start()で開始、stop()で停止、reset()でリセットです。start()からの経過時間はelapsedInMs()を使うとミリ秒、elapsedInUs()を使うとマイクロ秒で知ることができます。elapsed()は、frequency()によって取得できる周波数に依存していて、何回カウントしたかがわかります。reset()してからstart()しなければ、0となります。

class StopwatchSample {
  Stopwatch _watch;
  StopwatchSample() {
    _watch = new Stopwatch();
  }
  void timeMeasurement() {
    // start
    _watch.start();
    // busy wait for 1000[msec]
    while (_watch.elapsedInMs() < 1000) {}
    // stop
    _watch.stop();
  }
  void printResult() {
    print("""
frequency()  :${_watch.frequency()} hz
elapsed()    :${_watch.elapsed()} clock ticks
elapsedInMs():${_watch.elapsedInMs()} milliseconds
elapsedInUs():${_watch.elapsedInUs()} microseconds
""");
  }
  void reset() {
    _watch.reset();
    print("reset(); elapsed()  :${_watch.elapsed()}");
  }
}
void main() {
  StopwatchSample app = new StopwatchSample();
  app.timeMeasurement();
  app.printResult();
  app.reset();
}

実行結果の例は次のとおりです。

frequency()  :1000000 hz
elapsed()    :1000086 clock ticks
elapsedInMs():1000 milliseconds
elapsedInUs():1000086 microseconds

reset(); elapsed()  :0

同じタグの記事: Dart
同じタグの記事: dartlang
同じカテゴリの記事: Program