Jasmin Time

C# (Windows 작업스케줄러를 사용하지 않기 위한...) 특정시간마다 이벤트를 실행시키는 방법 본문

프로그래밍/C#

C# (Windows 작업스케줄러를 사용하지 않기 위한...) 특정시간마다 이벤트를 실행시키는 방법

자유곰 2018. 10. 19. 11:49

Windows 작업 스케줄러를 이용하지 않고 특정 시간에만 이벤트 또는 메소드를 실행하게 할 수 있는 방법이 없을까

검색해보다가 특정 시간을 계산해서 그 시간에만 이벤트를 실행하는 방법을 찾았다.


예제 코드는

매일 새벽 3시에 이벤트를 실행시키는 타이머이다.


using System.Timers;
 
----------------------------
 
private Timer _timer;
private Int32 _hours = 0;
private Int32 _runAt = 3;
 
protected override void OnStart(string[] args)
{
    _hours = (24 - (DateTime.Now.Hour + 1)) + _runAt;
    _timer = new Timer();
    _timer.Interval = _hours * 60 * 60 * 1000;
    _timer.Elapsed += new ElapsedEventHandler(Tick);
    _timer.Start();
}
 
void Tick(object sender, ElapsedEventArgs e)
{
    if (_hours != 24)
    {
        _hours = 24;
        _timer.Interval = _hours * 60 * 60 * 1000;
    }
 
    // 실행할 이벤트 또는 메소드 입력
}
cs



출처: https://code.i-harness.com/ko-kr/q/4b256


4 Comments
댓글쓰기 폼