protected TaskRunnerBase(int id, ILogger logger) : base(logger) { if (id < 1) { throw new ArgumentOutOfRangeException(nameof(id), id, "Must be greater than zero."); } Id = id; StateSubject = new ObservableValue <TaskRunnerState>(); ProgressSubject = new ObservableValue <object?>(); StateUpdated = StateSubject.AsReadOnly(); ProgressUpdated = ProgressSubject.AsReadOnly(); }