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で出きることがどんどん増えています。
- クラスベースのオブジェクト指向プログラミング言語の基礎を学ぶには … 改訂版 基礎Java(CD-ROM付) (IMPRESS KISO SERIES)
- クラスベースのオブジェクト指向プログラミング言語を学ぶには … プログラミング言語Java (The Java Series)
- 関数型プログラミング言語を学ぶには … Scalaスケーラブルプログラミング第2版
- プログラミング言語の理論を学には … プログラミング言語の基礎概念 (ライブラリ情報学コア・テキスト)