आप current time
और अपने desired schedule time
के बीच difference
पता लगाना और बीत अंतराल तदनुसार कर सकते हैं। इस तरह शेड्यूल समय पर टाइमर will fire once
की घटना। समय समाप्त होने पर 24 घंटे तक अंतराल सेट करें।
private System.Timers.Timer _timer;
private void SetTimer()
{
DateTime currentTime = DateTime.Now;
int intervalToElapse = 0;
DateTime scheduleTime = new DateTime(currentTime.Year, currentTime.Month, currentTime.Day, 10,0,0);
if (currentTime <= scheduleTime)
intervalToElapse = (int)scheduleTime.Subtract(currentTime).TotalSeconds;
else
intervalToElapse = (int)scheduleTime.AddDays(1).Subtract(currentTime).TotalSeconds;
_timer = new System.Timers.Timer(intervalToElapse);
_timer.Elapsed += new System.Timers.ElapsedEventHandler(_timer_Elapsed);
_timer.Start();
}
void _timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
//do your work
_timer.Interval = (24 * 60 * 60 * 1000);
}
आप जो भी चलाने की कोशिश कर रहे हैं उसके आधार पर, इसे कंसोल एप्लिकेशन के रूप में बनाने के लिए बेहतर हो सकता है और जब भी आप चाहें विंडोज टास्क शेड्यूलर इसे चला सकते हैं। –
@ आप 'आदिल' उत्तर स्वीकार नहीं कर सकते हैं? जो ठीक और अच्छा समाधान भी काम कर रहा है। :) चूंकि यह प्रश्न अन-उत्तर श्रेणी के अंतर्गत है। अपना प्रश्न +1 करें और 'आदिल' जवाब दें। सहायक :)))), – RajeshKdev