public void UpdateSchedule(Schedule schedule) { if (schedule == null) throw new ArgumentNullException(nameof(schedule)); lock (_scheduleLock) { var wasRunning = IsScheduleRunning; if (wasRunning) StopSchedule(); Schedule = schedule; if (wasRunning) StartSchedule(); } }