2016-10-08 30 views
0

我在java中創建了一個打字遊戲項目。我使用java.util.Timer.schedule來設置重新繪製我的窗口的計時器。代碼在這裏:java Timer.schedule在Windows系統上不正常工作

timer.schedule(new TimerTask() { 
    @Override 
    public void run() { 
     // Some other codes ... 
     repaint(); 
    } 
}, 0, 1000/HZ); 

HZ是200,代碼工作以及在Ubuntu上,但是當我在Windows上運行它,它是慢慢地明顯比在Ubuntu,我感到困惑的是。

+0

什麼是你的目標HZ? – Ferrybig

+0

@Ferrybig HZ是一個整數,它是200. – lllwwwbbb

回答

0

與每個Timer對象相對應的是單個後臺線程,用於按順序執行所有定時器的任務。計時器任務應該快速完成。如果一個計時器任務需要花費過多時間才能完成,它會「佔用」計時器的任務執行線程。反過來,這可能會延遲後續任務的執行,這些任務可能會「聚集起來」並在(如果)違規任務最終完成時快速連續執行。

參考:https://docs.oracle.com/javase/7/docs/api/java/util/Timer.html

+0

真誠地感謝你,讓我明白它。我使用方法'Timer.scheduleAtFixedRate'而不是'Timer.schedule',我的項目也在Windows上運行良好。 – lllwwwbbb

+0

我忘了提到Timer.scheduleAtFixedRate。無論如何,你找到了它。很高興幫助 – Evingle

相關問題