2017-09-18 3 views
-1

私はjavaタイマーを持っています。私が欲しいJava - Timerが何度も何をするのですか?

出力:
を通過した
ティック4秒を経過し
ティック3秒を経過し
ティック2秒を経過し

ティック1秒たとえば、私は出力にこれを私のプログラムをしたいですdo_somethingを実行し、アップ
時間を通過した5秒をチェック()...

私がこれまで持っていることはTHIでありますS:

Timer timer = new Timer(); 
TimerTask timerTask = new TimerTask() { 
    @Override 
    public void run() { 
     System.out.println("Time up, running do_something()"); 
     do_something(); 
    } 
}; 
timer.schedule(timerTask, 5); 

私のコードの実際の出力は、これまでのところ、このです:アップ

時間、do_something()を実行している私は、この行に到達したときに...

5秒が経過しました。

+0

ここにループが必要です –

+0

ループをどのようにしたらいいですか? – WhatsYourIdea

+3

さて、あなたの 'Timer'はミリ秒の遅延のために設定されていますので、あなたは一度だけ取得するつもりです。繰り返したい場合は、' schedule(TimerTask、long、long) 'を使う必要があります。 2つの「タイマー」を使用することもできます.1つの繰り返し、1つの繰り返しではない間隔の異なる複数のタイマーです。 1つの「タイマー」が必要な場合は、最初に起動されたタイミングを決定し、実行間の時間を計算し、何をすべきかを判断する必要があります。スレッショルド(つまり5秒)を過ぎたら、タイマーをキャンセルして何か他のことをしてください。 – MadProgrammer

答えて

0

さてあなたの意図がループにある場合、あなたはようTimer以上scheduleのオーバーロードされたメソッドを使用する必要があります。

は後に始まる、固定遅延実行を繰り返したため、指定されたタスクをスケジュールします
timer.schedule(TimerTask task, long delay, long period); 

遅延を指定します。

関連する問題