我正在开发一个Windows服务,每15分钟发送一次自动电子邮件。我使用定时器在固定的时间间隔(15分钟)后再次使用该服务,但它不起作用。固定时间间隔后重新启动Windows服务
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分钟发送一次邮件。
您的间隔的代码应该是900000(MS)15分钟。 –
@AlexFilipovici是对的,这可能有所帮助: var myTimer = =新的计时器(15 * 60 * 1000); //设置15分钟 –
您是否考虑使用预定任务而不是服务? –