我有一个窗口服务,并且我使用System.Timers.Timer
来安排我的服务
protected override void OnStart(string[] args)
{
timer_= new System.Timers.Timer(intervalTime * 1000);
timer_.Elapsed += new System.Timers.ElapsedEventHandler(TimerEvent);
timer_.Enabled = true;
}
private void TimerEvent(object sender, System.Timers.ElapsedEventArgs e)
{
DoSth();
}
我发现Dosth()
函数在我启动服务时并没有完全运行,但是在intervalTimer
秒之后。我希望它在我启动服务后完全运行,所以我在声明Dosth()
之前调用函数timer_.Enabled = true;
。但我有另一个问题。第一个和第二个过程的距离不完全等于intervalTime
,而是基于DoSth()
函数的处理时间。我该如何解决这个问题?