Constructs a new threaded job scheduler.
Constructs a new threaded job scheduler with a default task pool and time provider.
Adds a job to the scheduler. For this scheduler, jobs are added to the list in-order, such that the first job is the one whose next execution time is the closest.
Gets the next available id to assign to a scheduled job. This must be unique among all jobs that have been added to the scheduler but not yet removed.
Gets the number of jobs that this scheduler has.
Removes all jobs from the scheduler.
Removes a job from the scheduler.
Starts the scheduler. Once started, there is no guarantee that all scheduler implementations will allow adding new jobs while running.
Stops the scheduler.
Removes a job from the scheduler.
A simple thread-based scheduler that sleeps until the next task, and runs it using a task pool. Allows for adding and removing jobs only when not running.