Вопрос о том, как реализовать синхронизацию между разными таймерами. Например, здесь у нас есть 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.