Dart: Structured web apps [9] Timer

dart:ioパッケージにはTimerがあり、イベントループを発生することができます。

1秒後に1回だけ処理をしたいときは、「new Timer(1000, (Timer t) => print(‘timer’));」のようにします。繰り返し処理をしたいときは、repeatingコンストラクタを使います。5回繰り返したら終了したいときは、終了処理を含んだ関数を用意しておいて、これをコンストラクタへ渡せば良いでしょう。Timerオブジェクトの参照をとっておいて、後でキャンセルすることもできます。キャンセルにはcancel()メソッドを使います。

#import('dart:io');

main() {
  new Timer(1000, (Timer t) => print('timer'));
  print('end of main');
  int i = 0;
  var f = (Timer t) {
    if (i > 5) {
      t.cancel();
      print('timer cancel()');
    } else {
      i++;
      print('timer a');
    }
  };
  new Timer.repeating(1000, f);
  Timer t1 = new Timer.repeating(1000, (Timer t) => print('timer repeating'));
  new Timer(5000, (Timer t){ t1.cancel(); print('t1 cancel'); });
}

APIにあるメソッドを実際に動作させてみてのサンプルなので、使い方が正しいかどうかは、今後の正式サンプルを見ないとわかりませんが、とりあえず、こういったこともできるようになって、Dartで出きることがどんどん増えています。

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