2014-10-28 2 views
0

웹 응용 프로그램을 작성 중입니다. 이 응용 프로그램에서 12 분 후에 타이머 틱을 일시 중지하고 싶습니다. 내가 어떻게 할 수 있니? 아니면 타이머 틱이 일시 중지되도록 시간을 지정할 수 있습니까?미리 정의 된 시간 후에 Timer_Tick을 일시 중지하는 방법은 무엇입니까?

+0

당신 12 분 첫 번째 타이머를 중지 두 번째 타이머를 가질 수있다. –

+0

몇 분 후에 타이머를 멈추게 할 수 있습니까? @Ben Robinson –

+0

지속 시간 = 12 분의 다른 타이머 사용 방법은 어떻습니까? 틱에서 이전 하나를 비활성화하십시오. –

답변

0

콜백의 상태 개체를 사용하여 타이머 인스턴스를 가져올 수 있습니다.
그런 다음 타이머를 중지하려면 콜백 내부를 확인할 수 있습니다.
당신은 단순히 진드기의 수를 계산하고 각 틱의 경과 시간을 계산 할 수 있습니다

... 
    // Start the timer 
    // you have to use this constructor if you want to 
    // access the timer itself inside callback 
    var timer = new Timer(Callback); 
    timer.Change(100, period); 
} 

// Set desired period 
private static int period = 100; 

// Track elapsed time 
private static int elapsed; 

private static void Callback(object state) 
{ 
    // update elapsed time 
    ellapsed += period; 

    // check if ellapsed is greater than 12min 
    bool isElapsed = ellapsed >= 12 * 60 * 1000; 

    if (!isElapsed) return; 

    var timer = state as Timer; 

    if (timer != null) 
     timer.Change(Timeout.Infinite, Timeout.Infinite); 
} 
관련 문제