如何让服务在特定时间运行
本文关键字:定时间 运行 服务 | 更新日期: 2023-09-27 18:31:20
我有一个服务,目前我相信每 10 分钟运行一次,但我希望它每天晚上 7 点运行,我需要改变什么?
private Timer _timer;
private DateTime _lastRun = DateTime.Now;
protected override void OnStart(string[] args)
{
_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)
{
if (_lastRun.Date < DateTime.Now.Date)
{
// stop the timer
_timer.Stop();
try
{
SmartImportService.WebService.WebServiceSoapClient test = new WebService.WebServiceSoapClient();
test.Import();
}
catch (Exception ex) { }
_lastRun = DateTime.Now;
_timer.Start();
}
}
替换:
if (_lastRun.Date < DateTime.Now.Date)
{
}
跟:
DateTime startAt = DateTime.Today.AddHours(19);
if (_lastRun < startAt && DateTime.Now >= startAt)
{
}
可能会解决问题。但我更愿意使用已经建议的计划任务
Windows Service 是一个持续运行的任务。如果您正在寻找需要在指定时间运行的内容,请编写计划任务,其他良好链接。