2014-03-03 21 views
0

我正在使用Java編程的下載定時器。我的目標是在下載開始時自動啓動計時器,並在停止時停止計時器。我有一個基本的計時器,在程序啓動時計算秒數,但我在自動化時遇到問題。我研究過java.io,但我不確定這是否是我需要的。Java中的自動下載定時器

這是我到目前爲止的代碼:

package sciencePackage; 

public class Timer extends Thread { 
    @Override 
    public void run() { 
     super.run(); 
     try { 

      for (int i = 1;i < 61; i++) { 

       this.sleep(1000); 
       System.out.println("System is still running -- " + i); 
      } 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 


    } 
} 
+1

Java有2個內置'Timer'類:'java.util.Timer'和'javax.swing.Timer'。 –

回答

1

創建Timer類似乎過高了,你建議,更何況,已經有內置的Java一類Timer使用。但是,定時器最適合用於調度行爲,而不是觀察它們需要多長時間。

此外,在您發佈的代碼中,您甚至可以在開始計時之前完成super.run()。那時,你的計時器沒有什麼可以等待了,除非你的下載發生在你沒有告訴過我們的另一個線程上。

相反,你很可能做一些簡單得多,就像這樣:

public void run() { 
    long startTime = System.nanoTime(); 
    super.run(); 
    long endTime = System.nanoTime(); 
    System.out.println("Download Time: " + (end - start)/1.0e9 + " seconds"); 
} 
+0

我知道這一點,但是我希望自動啓動/停止時間,而不是總時間。對不起,如果這不明確。 –