<PackageReference Include="System.Reactive" Version="4.1.4" />

ThreadPoolScheduler

Represents an object that schedules units of work on the CLR thread pool.
public static ThreadPoolScheduler Instance { get; }

Gets the singleton instance of the CLR thread pool scheduler.

public IDisposable ScheduleLongRunning<TState>(TState state, Action<TState, ICancelable> action)

Schedules a long-running task by creating a new thread. Cancellation happens through polling.

public IDisposable SchedulePeriodic<TState>(TState state, TimeSpan period, Func<TState, TState> action)

Schedules a periodic piece of work, using a System.Threading.Timer object.