2010-03-30 4 views
1

Windows 서비스 예약 된 작업을 구현하고 싶습니다. 이미 Windows 서비스를 만들었습니다. 서비스에서 타이머를 구현했습니다. 타이머는 클래스 간격으로 초기화됩니다. 타이머 간격은 서비스의 시작 메소드에서 설정되며 서비스의 시작 메소드에서도 활성화됩니다. 경과 된 이벤트가 발생한 후에 나는 몇 가지 조치를 취했다.Windows 서비스 및 system.timer.timer로 예약 된 작업

내 문제는 내가 딜레마에 빠졌습니다. Elapsed 이벤트에서 수행 한 작업이 1 시간 걸리고 타이머 간격이 30 분으로 설정됩니다. 따라서 경과 된 이벤트에 대한 이전 호출이 종료되지 않아도 경과 이벤트에 대한 새 호출이 발생하는 기회가 있습니다.

내 질문에 어떤 충돌이있을 것입니다 또는 확인 또는 스레드를 사용해야합니다. 몇 가지 조언을주지하시기 바랍니다

답변

0

그런 다음, 당신의 장기 실행 방법의 시작에 타이머를 중지 끝에서 다시 시작할 수 있습니다

Timer.Change(Timeout.Infinite, Timeout.Infinite) 
// do long task ... 
Timer.Change(dueTime,period)