2010-08-01 60 views
1

我在寫一個名爲Food的類。我考慮了一個字段「int cookingTime」來查看這個類的每個實例已經存在了多長時間。我認爲我應該使用Timer類。我寫了下面的一段代碼,但它不起作用。我不確定我的方法是否正確。我非常感謝任何幫助。使用計時器知道對象的年齡

Class Food 
{ 

    private System.Timers.Timer timerClock = new System.Timers.Timer(); 

    static int cookingTime = 0; 

    public Food() 
     { 

      this.timerClock.Elapsed += new System.Timers.ElapsedEventHandler(process); 
      this.timerClock.Interval = 1000; 
      this.timerClock.Enabled = true; 

    } 

    static void process(Object myObject, EventArgs myEventArgs) 
    { 

     cookingTime += 1; 
    } 

} 
+0

「這個類的每個實例存在多久」 - 爲什麼你需要這個?如果你告訴我們,也許可以找到一個不同的想法。 – Oded 2010-08-01 15:32:42

回答

1

爲什麼不使用System.Diagnostics.Stopwatch

class Food 
{ 
    private readonly Stopwatch _stopwatch = Stopwatch.StartNew(); 

    public TimeSpan CookingTime 
    { 
     get { return _stopwatch.Elapsed; } 
    } 
} 

我注意到您的cookingTime字段是靜態的。如果你以某種方式總計多種食物的時間,那麼你可以保留一個Stopwatches的列表(靜態或其他),並且每當你需要知道總時間時,你可以將它們總結在一起。

+0

我打算建議,但重新閱讀這個問題。目前尚不清楚究竟需要什麼。 – Oded 2010-08-01 15:33:10

+0

問題中的代碼基本上每秒鐘都在計時器上滴答滴答,並從中增加一個計數器。這是一個更好的解決方案。 – jdmichal 2010-08-01 15:36:49

+0

實際上,我最終希望從烹飪時間最短的食物列表中選擇食物。 – user383240 2010-08-01 16:54:58

5

如何保存創建對象的時間戳?然後,當你想知道對象存在多久時,只需從Now()中減去它。