2013-08-02 36 views
-3

我有一個定時器應該每隔10秒運行一次代碼,但它似乎只運行一次所需的代碼。我無法弄清楚我做錯了什麼。 :{我的事件計時器循環的事情有什麼問題?

Timer timer = new Timer(); 

    timer.scheduleAtFixedRate(new TimerTask() { 
      @Override 
      public void run() { 
        System.out.println("it only prints this once"); 
      } 
     }, 100, 100000); 

在此先感謝您的幫助。

+0

'0 * 0 * 100' ='0'不是每說一個問題,只是很多噪音 – MadProgrammer

+0

你被0乘以第一個參數,它將永遠是零 – EProgrammerNotFound

+0

我拿出噪音,問題依然存在。 – Saucymeatman

回答

2

scheduleAtFixedRate的最後兩個參數看起來很奇怪。第一個總是0(這不是問題,只是意味着在第一次執行之前沒有延遲)。第二個設置爲2分鐘,而不是0.1秒。該參數應該是以毫秒爲單位的速率。對於0.1秒,您應該使用100,而不是2 * 60 * 1000。

試試這個:

timer.scheduleAtFixedRate(new TimerTask() { 
    @Override 
    public void run() { 
     System.out.println("it only prints this once"); 
    } 
}, 100, 100); 
+0

我拿出噪音,問題仍然存在。 – Saucymeatman

+0

@ user2619934 - 您最初設置的任務是每2分鐘運行一次,而不是每1/10秒運行一次。它現在設置爲每100秒運行一次(比每2分鐘運行一次快一點,但仍然比你說的要多得多)。 –

+0

真的嗎?這一定是問題!我認爲這是以毫秒量度的。 – Saucymeatman