2011-11-27 14 views
-3

可能重複:
Timer Won't Fire Correctly如何做任務多次在Java 1.6

顯然,在Java 1.6中,Timer不起作用像以前那樣,那麼我該怎麼辦每250毫秒(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看起來和我差不多。您仍然可以安排使用Java6進行固定間隔執行的任務。有沒有一些特定的行爲,你需要的不在Java6 API中? – rodion

+3

-1:wtf?我討厭離開flyby downvotes,但我真的不知道該說些什麼。你真的認爲他們只是在1.6禁用計時器?任何信息來源?你看過API嗎?你的代碼示例在哪裏?你目前有什麼?給我們一些東西在這裏工作。 –

回答

1

如果你想要做的任務每250毫秒甚至doStuff()可能需要超過250毫秒以上時,應使用一個新的線程來「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

有一個問題,它不是每250ms就發射一次,而是儘可能快地發射。我如何在另一個線程中使用它。 – Cg2916

+0

我試過了,它每250毫秒工作。時間表最後的「250」是時間 – Kanglai