Использовать таймер в другом таймере в C # - PullRequest
0 голосов
/ 20 октября 2018

У меня есть проект службы 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);
        }

Когда я запускаю экземпляр "TaskScheduler" в "InitializeScheduler ()", _triggerTimerне распоряжаться и добавить еще один таймер.Как я могу избавиться от него и перезапустить все в методе InitializeScheduler ()?

1 Ответ

0 голосов
/ 20 октября 2018

Попробуйте использовать таймер перед созданием нового.

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...