Синхронизация разных таймеров - PullRequest
0 голосов
/ 09 января 2020

Вопрос о том, как реализовать синхронизацию между разными таймерами. Например, здесь у нас есть 3 задачи, задача A, задача B, задача C. A используется для B и C, поэтому A нужно дождаться, пока B и C завершены.

Здесь я использовал System.Timers.Timer в коде. Как я могу узнать, когда задачи B и C будут выполнены, или Таймер может отправить сигнал, сообщающий мне, что он завершен в этом интервале.

public PollingMachine(string WorkflowName, ElapsedEventHandler elapsedEventHandler)
{
    StartingTime = config.GetStartTime(WorkflowName);
    StoppingTime = config.GetStopTime(WorkflowName);
    DisposingTime = config.GetDisposeTime(WorkflowName);
    RestartTime = config.GetRestartTime(WorkflowName);
    Interval = config.GetInterval(WorkflowName);
    this.Action = elapsedEventHandler;
    timer.Interval = this.Interval.Hours * 3600 * 1000 + 
                     this.Interval.Minutes * 60 * 1000 + 
                     this.Interval.Seconds * 1000;
    timer.AutoReset = true;
    timer.Enabled = false;
    timer.Elapsed += Action;
}

Вот класс generi c использоваться всеми задачами. Рабочие процессы отправят свою работу в ElapsedEventHandler.

...