我在.Net Framework 4.0中编写了一个Windows服务,我需要在里面安排一个重复的任务。新任务只能在前一个任务完成后运行,因此没有并行任务... 我的所有任务都出现在同一个对象(WCF通道工厂)上。 任务大约需要2秒钟才能完成,可能每2秒或每小时安排一次。 我的约束是让这个Windows服务尽可能在内存和处理器上使用不可见/光,并使用处理器...
我已经找到了这两种方式:
System.Timers.Timer
与Autoreset
使用false =>我是
实现ElapsedEventHandler
并传递我的共享对象(WCF
渠道工厂)有什么建议吗?
谢谢,祝你有愉快的一天!
答案 0 :(得分:2)
对我来说很顺利:我启动计时器一次,然后在Tick方法中我将安排下一个Tick通话。像这样:
public void SetTimer()
{
// this is System.Threading.Timer, ofcource
_timer = new Timer(Tick, null, _interval, Timeout.Infinite);
}
private void Tick(object state)
{
try
{
// do your stuff
}
finally
{
_timer?.Change(_interval, Timeout.Infinite);
}
}
// dont forget to dispose your timer.