在 C# 的另一个 Timer 中使用 Timer

Use Timer in another Timer in C#

我有一个 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 中 class:

private Timer _triggerTimer;
        public TaskScheduler()
        {            
            _triggerTimer = new Timer(1000);
            _triggerTimer.Elapsed += (TriggerTimerTick);
        }

当我在 "InitializeScheduler()" 中实例 "TaskScheduler" 时,_triggerTimer 未被处理并添加另一个计时器。我如何处理它并重新启动 InitializeScheduler() 方法中的所有东西?

尝试在创建新计时器之前处理掉计时器。

private void InitializeScheduler()
{
if( _taskScheduler != null)
    _taskScheduler.Dispose();

     _taskScheduler = new TaskScheduler() { Enabled = true };
    // do something
 }

任务调度器class:

private Timer _triggerTimer;
public TaskScheduler()
{            
    _triggerTimer = new Timer(1000);
    _triggerTimer.Elapsed += (TriggerTimerTick);
}

public Dispose()
{
   if(_triggerTimer != null){
       _triggerTimer.Dispose()
       _triggerTimer = null;
}