C#, System.Timers.Timer, run every 15min in sync with system clock -
how system.timers.timer trigger elapsed events every 15 mins in sync system clock? in other words, want trigger @ xx:00, xx:15, xx:30, xx:45 (where xx means hour)
you let elapse every second , check whether current time 00, 15, 30 or 45 , forward event.
a first idea be:
private static system.timers.timer atimer; private static system.datetime _last; public static void main() { atimer = new system.timers.timer(10000); atimer.elapsed += new elapsedeventhandler(ontimedevent); atimer.interval = 1000; atimer.enabled = true; console.writeline("press enter key exit program."); console.readline(); } private static void ontimedevent(object source, elapsedeventargs e) { datetime time = new datetime( 1,1,1, datetime.now.hours, datetime.now.minute ); if( time.minute==0 ||time.minute==15 || time.minute==30 || time.minute==45 ) { // avoid multiple notifications same quarter. if ( _last==datetime.minvalue || _last!=time ) { _last = time; // further processing. doprocessing(); } } } (example based on this msdn documentation)
Comments
Post a Comment