如题,在windows服务中使用System.Timers.Timer计时器,设置了Elapsed事件,但事件一直不能被触发。代码如下private System.Timers.Timer timer;
protected override void OnStart(string[] args)
{
Thread.Sleep(30000);
this.timer = new System.Timers.Timer();
this.timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
this.timer.Interval = 1000;
this.timer.AutoReset = true;
this.timer.Enabled = true;
}
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
}
protected override void OnStart(string[] args)
{
Thread.Sleep(30000);
this.timer = new System.Timers.Timer();
this.timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
this.timer.Interval = 1000;
this.timer.AutoReset = true;
this.timer.Enabled = true;
}
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
}
貌似触发一次之后就不会再触发了timer_Elapsed放点东西呢,
不要放 messagebox,而是写个日志文件啥的
和 timer.start()
效果是一样滴
不是只执行一次 而是间隔执行 false的话是只执行一次
private System.Timers.Timer timer; public Service()
{
InitializeComponent();
} protected override void OnStart(string[] args)
{
Thread.Sleep(30000);
this.timer = new System.Timers.Timer(); // 这里断点,能够命中进入调试
this.timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
this.timer.Interval = 1000;
this.timer.AutoReset = true;
this.timer.Enabled = true;
//this.timer.Start();
} /// <summary>
/// 服务停止事件
/// </summary>
protected override void OnStop()
{
this.timer.Enabled = false;
//this.timer.Stop();
} void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
Config config = Config.GetConfig(); // 这里断点,没有进入调试 if (config.Status == Status.Start)
{
return;
} Console.Write("OK");
}