2011-11-27 14 views
-3

で可能重複タスクを実行する方法:それがために使用のようにするJava 1.6で
Timer Won't Fire Correctlyは、繰り返しのJava 1.6

どうやらを、Timerは動作しませんので、私はどのように行います250ms(1/4秒)ごとに起動するタスクを取得しますか?

+2

[ 'java.util.Timer'](http://docs.oracle.com/javase/7/docs/api/java /util/Timer.html)または['javax.swing.Timer'](http://docs.oracle.com/javase/7/docs/api/javax/swing/Timer.html)を参照してください。 – mre

+6

*それは*に慣れていたように動作しません。 APIは私にとってはほとんど同じように見えます。 Java 6を使用して固定間隔実行のタスクをスケジュールすることもできます。 Java6 APIには必要な動作がいくつかありますか? – rodion

+3

-1:wtf?私はflybyのdownvotesを残したくないが、私は本当にここで何を言うべきか分からない。あなたは本当に彼らが1.6でタイマーを無効にしたと思いますか?あらゆる情報源?あなたはAPIを見てきましたか?コードサンプルはどこにありますか?現在何を持っていますか?私たちと一緒に仕事をしてください。 –

答えて

1

あなたは250msごとにもdoStuff()が250msの以上かかることがあり、タスクを実行したい場合は、「doStuff」

(この場合は、複数のdoStuffは時間で働くこと)するために、新しいスレッドを使用する必要があります

更新(私は、win7x64でこれを試してみましたJDK 1.6およびそれが動作します)

java.util.TimerTask task = new java.util.TimerTask() { 
     @Override 
     public void run() { 
      System.out.println("yoo"); 
     } 
    }; 
    java.util.Timer timer = new java.util.Timer(); 
    timer.schedule(task, java.util.Calendar.getInstance().getTime(), 250); 
+0

1つの問題点は、250msごとに発射しているわけではなく、可能な限り速く発砲していることです。別のスレッドでどのように使用するのですか? – Cg2916

+0

私は試して、それは250msごとに働いた。スケジュールの最後の「250」は、 – Kanglai