我有一個Windows服務正在運行,在這裏我想每分鐘運行一個函數。 我發現了一些代碼,但它似乎並沒有工作? 我有一個記錄器,它似乎沒有進入timer_Elapsed函數?如何每10分鐘在一個服務中運行一個函數?
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);
}
private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
log.Info("Info - Check time");
DateTime startAt = DateTime.Today.AddHours(9).AddMinutes(48);
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();
}
}
你需要調用定時器的啓動嗎? – 2012-04-18 08:54:55
請參閱http://stackoverflow.com/questions/246697/windows-service-and-timer – 2012-04-18 08:56:08
ahhh yeeeeeeeee – Beginner 2012-04-18 08:57:07