我有一個Windows服務正在運行。其中的任務目前在每天晚上7點運行。 讓它運行的最好方法是在上午9時45分,上午11時45分,下午2時,下午3時45分,下午5時和下午5時45分舉例說明。Windows服務 - 如何讓任務在幾個特定時間運行?
我知道我可以有計劃的任務運行功能,但我想知道如何在我的Windows服務中做到這一點。下面當前代碼:
private Timer _timer;
private DateTime _lastRun = DateTime.Now;
private static readonly log4net.ILog log = log4net.LogManager.GetLogger
(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
protected override void OnStart(string[] args)
{
// SmartImportService.WebService.WebServiceSoapClient test = new WebService.WebServiceSoapClient();
// test.Import();
log.Info("Info - Service Started");
_timer = new Timer(10 * 60 * 1000); // every 10 minutes??
_timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
_timer.Start();
}
private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
log.Info("Info - Check time");
DateTime startAt = DateTime.Today.AddHours(19);
if (_lastRun < startAt && DateTime.Now >= startAt)
{
// stop the timer
_timer.Stop();
try
{
log.Info("Info - Import");
SmartImportService.WebService.WebServiceSoapClient test = new WebService.WebServiceSoapClient();
test.Import();
}
catch (Exception ex) {
log.Error("This is my error - ", ex);
}
_lastRun = DateTime.Now;
_timer.Start();
}
}
ERM可以顯示例如PLZ,DNT知道從哪裏開始? – Beginner
timeToRun何時會被設置? – Beginner
我得到錯誤.... System.NullReferenceException:對象引用未設置爲對象的實例。 at SmartUploadSyncService.Service1.ResetTimer() – Beginner