public virtual ValueTask DisposeAsync() { UpdateState(TaskRunnerState.Disposed); StateSubject.Dispose(); ProgressSubject.Dispose(); return(new ValueTask()); }
public TaskRunner(int id, TaskRunnerFactoryDelegate factory, ILogger logger) : this(id, logger) { Factory = factory ?? throw new ArgumentNullException(nameof(factory)); StateSubject.Init(TaskRunnerState.Stopped); ProgressSubject.Init(default);
protected bool UpdateState(TaskRunnerState state) => StateSubject.Post(state, true);
public override void OnStateExit() { SetCurrentHook(StateHook.OnExit); base.OnStateEntry(); StateSubject.OnNext(State); }