我有一个具有以下代码的windows服务项目:
protected override void OnStart(string[] args)
{
InitializeScheduler();
var timer = new Timer {Interval = 10 * 60 * 1000};
timer.Elapsed += (ss, ee) => InitializeScheduler();
timer.Start();
}
private void InitializeScheduler()
{
_taskScheduler = new TaskScheduler() { Enabled = true };
// do something
}在TaskScheduler类中:
private Timer _triggerTimer;
public TaskScheduler()
{
_triggerTimer = new Timer(1000);
_triggerTimer.Elapsed += (TriggerTimerTick);
}当我在"InitializeScheduler()“中实例”InitializeScheduler“时,_triggerTimer不会释放并添加另一个计时器。如何将其释放并重新启动InitializeScheduler()方法中的所有内容?
发布于 2018-10-20 07:46:54
在创建新计时器之前尝试释放定时器。
private void InitializeScheduler()
{
if( _taskScheduler != null)
_taskScheduler.Dispose();
_taskScheduler = new TaskScheduler() { Enabled = true };
// do something
}TaskScheduler类:
private Timer _triggerTimer;
public TaskScheduler()
{
_triggerTimer = new Timer(1000);
_triggerTimer.Elapsed += (TriggerTimerTick);
}
public Dispose()
{
if(_triggerTimer != null){
_triggerTimer.Dispose()
_triggerTimer = null;
}https://stackoverflow.com/questions/52903447
复制相似问题