【发布时间】:2012-07-15 02:21:21
【问题描述】:
我想写一个windows服务。但它需要在特定时间运行。例如,我的服务应该每 5 分钟向我发送一次电子邮件。
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)
{
// ignore the time, just compare the date
if (_lastRun.Date < DateTime.Now.Date)
{
// stop the timer while we are running the cleanup task
_timer.Stop();
//
// do cleanup stuff
//
_lastRun = DateTime.Now;
_timer.Start();
}
}
我希望我的服务每 5 分钟向我发送一次电子邮件。
【问题讨论】:
-
老实说,我认为这些信息还不够。没有代码就很难提供任何有用的东西。 Try this
-
有人问过这个问题,这里是链接。你使用这个 System.Threading.Timer 这是成功的关键stackoverflow.com/questions/246697/windows-service-and-timer
-
我想给我发邮件,我编辑我的问题
标签: c# windows windows-services