2010-01-19 2 views
1

오후 3시 등의 데이터베이스에 "약속"이벤트 목록이 있으며 15 분 후 및 다음 30 분 후와 25 분 후 다음과 같은 불규칙한 간격이 있습니다. 한 가지 방법은 다음 약속 시간에 관계없이 매분마다 데이터베이스를 검사하는 스레드/타이머를 실행하는 것입니다. 다음에 저장 한 시간에 경고/이벤트/동작을 트리거 할 수있는 다른 메커니즘을 원합니다. 내 데이터베이스에 ... 그것을하는 방법 ...C# Aperiodic 이벤트 생성

+1

나는 이것을 "C# 최음기 이벤트 생성"으로 계속 읽습니다 .-P –

답변

1

하는 것은 시간 범위를 얻기 위해 그 DateTime.Now에서 빼기, 데이터베이스의 다음 약속의 날짜/시간을 가져, 다음 번과 유사한 타이머를 해고하는 시간 범위를 사용

class MainClass 
{ 
    public static void FireTimerAt(DateTime next) 
    { 
     TimeSpan waitTime = next - DateTime.Now; 

     new Timer(delegate(object s) { 
         Console.WriteLine("{0} : {1}", 
         DateTime.Now.ToString("HH:mm:ss.ffff"), s); 
        } 
       , null, waitTime, new TimeSpan(-1)); 
    } 
} 
2

당신은 Quartz.NET을 봐야합니다. Features of Quartz.Net에서

:

Quartz.NET 다른 자유로운 서있는 응용 프로그램

+0

내 응용 프로그램, 다른 독립형 또는 다른 종류의 시스템에서는 작동하지 않을 C#으로 구현해야합니다 ... – Moon

+0

Quartz.NET도 실행할 수 있습니다 귀하의 응용 프로그램 내에서 그것은 스케줄링을위한 라이브러리입니다. –

0

Timer Class

에 포함 실행할 수 지정된 간격으로 방법을 실행하는 메커니즘을 제공합니다. 이 클래스는 상속 될 수 없습니다.