2010-08-01 2 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

답변

1

System.Diagnostics.Stopwatch을 사용하지 않으시겠습니까?

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

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

나는 귀하의 cookingTime 필드가 정적이라는 것을 알고 있습니다. 어쨌든 여러 식품의 시간을 합산한다면 스톱워치 목록 (정적 또는 기타)을 유지할 수 있으며 총 시간을 알 필요가있을 때마다 모두 합산 할 수 있습니다.

+0

나는 그것을 제안하려고했으나 질문을 다시 읽었다. 원하는 것이 무엇인지 명확하지 않습니다. – Oded

+0

문제의 코드는 기본적으로 매초마다 타이머를 작동시켜 카운터를 증가시킵니다. 이것은 훨씬 더 나은 해결책입니다. – jdmichal

+0

사실 나는 마침내 요리 시간의 최소 시간이 걸리는 음식 목록에서 음식을 선택하려고합니다. – user383240

5

개체 생성의 타임 스탬프 저장 방법은 어떻습니까? 그런 다음 객체가 얼마나 오래 있었는지 알고 싶을 때 Now()의 subtrackt를 누릅니다.

관련 문제