public MonitoringJobExecutor(IActionQueue queue, ILogger logger) { _logger = logger; _queue = queue; //не придумала, как безопасно обработать уже существующие в очереди задачи, //если они были добавлены до старта обработчика и подписки на событие добавления задачи, //поэтому очистка очереди, если она была непустой if (_queue.Count > 0) { _queue.Clear(); } _queue.OnActionAdded += Work; }