私はjava.util.timer
クラスを使用していますが、私はそのスケジュールメソッドを使ってタスクを実行していますが、6回実行した後にタスクを停止する必要があります。Java.util.Timerクラスでスケジュールされたタスクを停止する方法
どうすればよいですか?
私はjava.util.timer
クラスを使用していますが、私はそのスケジュールメソッドを使ってタスクを実行していますが、6回実行した後にタスクを停止する必要があります。Java.util.Timerクラスでスケジュールされたタスクを停止する方法
どうすればよいですか?
はどこかタイマーへの参照を保持し、かつ使用:
timer.cancel();
timer.purge();
を、それはやっているものは何でも停止します。実行中のタスクの内部にこのコードを挿入して、static int
を使用して、移動した回数をカウントすることができます。
private static int count = 0;
public static void run() {
count++;
if (count >= 6) {
timer.cancel();
timer.purge();
return;
}
... perform task here ....
}
cancel()
on the Timer
(これがすべて実行している場合)またはcancel()
on the TimerTask
(継続するタイマー自体に他のタスクがある場合)を呼び出します。
: あなたのタイマー:
を停止するためにTimer t = new Timer();
TimerTask tt = new TimerTask() {
@Override
public void run() {
//do something
};
}
t.schedule(tt,1000,1000);
:ちょうど意志タイマーをキャンセル
tt.cancel();
t.cancel(); //In order to gracefully terminate the timer thread
お知らせ進行中のtimertaskを終了しない。
timer.cancel(); //Terminates this timer,discarding any currently scheduled tasks.
timer.purge(); // Removes all cancelled tasks from this timer's task queue.
特定の時間(ミリ秒)で目を覚ました後、タイマーを一度終了します。
Timer t = new Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
System.out.println(" Run spcific task at given time.");
t.cancel();
}
}, 10000);
私はパージ – Jacky
が、それは両方を持っていることをお勧めだ@Jackyそれが良い(EffetiveのJavaブック)によると、最終的に –
をtimer.cancel()を追加することである持っている必要はありません、キャンセルは十分にあると思いますが、理論的には 'cancel'自体が動作します。 –