gpt4 book ai didi

c# - 在固定时间间隔后重新启动 Windows 服务

转载 作者:可可西里 更新时间:2023-11-01 09:30:24 26 4
gpt4 key购买 nike

我正在开发一个每 15 分钟自动发送一次电子邮件的 Windows 服务。我正在使用计时器在固定时间间隔(15 分钟)后再次使用该服务,但它不起作用。

namespace Mailer
{
public partial class Mailer : ServiceBase
{
System.Timers.Timer createOrderTimer;
public Mailer()
{
InitializeComponent();
}

protected override void OnStart(string[] args)
{
sendmail(); //function to send email.

createOrderTimer = new System.Timers.Timer();
createOrderTimer.Elapsed += new System.Timers.ElapsedEventHandler(createOrderTimer_Elapsed);
createOrderTimer.Interval = 15000;
createOrderTimer.Enabled = true;
createOrderTimer.AutoReset = true;
createOrderTimer.Start();
}

protected void createOrderTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs args)
{
createOrderTimer.Stop();
ServiceController controller = new ServiceController("Mailer");
controller.Start();
}

protected void sendmail
{
//code to send email.
}

protected override void OnStop() { }
}
}

最初发送电子邮件,但我希望每 15 分钟执行一次电子邮件发送。

最佳答案

您需要像这样更改代码

namespace Mailer
{
public partial class Mailer : ServiceBase
{
System.Timers.Timer createOrderTimer;
public Mailer()
{
InitializeComponent();
}

protected override void OnStart(string[] args)
{
createOrderTimer = new System.Timers.Timer();
createOrderTimer.Elapsed += new System.Timers.ElapsedEventHandler(sendmail);
createOrderTimer.Interval = 900000; // 15 min
createOrderTimer.Enabled = true;
createOrderTimer.AutoReset = true;
createOrderTimer.Start();
}

protected void sendmail(object sender, System.Timers.ElapsedEventArgs args)
{
//code to send email.
}

protected override void OnStop() { }
}
}

关于c# - 在固定时间间隔后重新启动 Windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13744034/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com