我写了一个Windows服务来叫我的类库,每10分钟间隔,它在启动时或重新启动。一旦工作完成它想重新再每10组分钟的运行工作正常这根本就没有发生。不知道什么是错过的,有人请确定正确的方式。的Windows服务没有启动,根据间隔时间
这里是我的代码
public partial class Service1 : ServiceBase
{
private Timer _timer;
private DateTime _lastRun = DateTime.Now;
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
log4net.Config.XmlConfigurator.Configure();
_timer = new Timer(10 * 60 * 1000); // every 10 minutes
_timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
Shell Distribute= new Shell();
Distribute.Distribute();
}
protected override void OnStop()
{
this.ExitCode = 0;
base.OnStop();
}
private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
//if (_lastRun.Date < DateTime.Now.Date)
//{
_timer.Stop();
_lastRun = DateTime.Now;
_timer.Start();
//}
}
}
}
日期比较是最可能的原因。但是,Timer类在触发Elapsed事件时会吞下异常。您*必须*使用try/catch来诊断代码中的任何故障。不要跳过它,如果你这样做的话,异常是不可想象的。 – 2012-04-03 13:52:59
@ HansPassant,即使我评论如果条件语句仍然是其无法运行该服务,每10分钟间隔 – Usher 2012-04-05 01:36:26