我如何每隔一小时运行一次Windows服务?

时间:2016-06-27 07:21:00

标签: c# asp.net windows-services

我已经创建了一个Windows服务并成功安装它,如果匹配日期和时间,我在其中创建了一些代码来发送电子邮件。

现在我想每隔一小时运行一次该服务,以检查日期和时间是否匹配。

我不明白我该怎么做?

请帮忙。

2 个答案:

答案 0 :(得分:7)

Windows服务应该连续运行 - 如果你只需要每小时“唤醒”一次,为什么不把它作为预定任务呢?

使用计划任务,您只需编译代码,然后就可以“创建任务”,将其指向您的exe并设置何时运行。 enter image description here

答案 1 :(得分:1)

使用System.Timers.Timer,您有更多选项,其中System.Threading.Timer是一个轻量级计时器。我建议你使用System.Timers.Timer

将tmrExecutor.Interval设置为您要运行多长时间发送电子邮件的间隔,间隔是以毫秒为单位

根据您的要求,每一小时就是3600000毫秒

Timer tmrExecutor = new Timer();

protected override void OnStart(string[] args)
{
  tmrExecutor.Elapsed += new ElapsedEventHandler(tmrExecutor_Elapsed); // adding Event
  tmrExecutor.Interval = 3600000; // Set your time here 
  tmrExecutor.Enabled = true;
  tmrExecutor.Start();
}

private void tmrExecutor_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
  //Do your Sending email work here
}

protected override void OnStop()
{
  tmrExecutor.Enabled = false;
}