public class RecurringTaskScheduler extends Object implements IDisposable
Constructor and Description |
---|
RecurringTaskScheduler()
Initializes a new instance.
|
RecurringTaskScheduler(int numberOfThreads)
Initializes a new instance to use a specified number of threads.
|
Modifier and Type | Method and Description |
---|---|
void |
addTask(Duration period,
RecurringTask task)
Adds a task to be executed on a recurring basis.
|
void |
dispose()
Performs application-defined tasks associated with freeing, releasing, or resetting
unmanaged resources.
|
boolean |
getIsRunning()
Gets a value indicating if the scheduler in running.
|
int |
getNumberOfThreads()
Gets the number of threads used to execute the recurring tasks.
|
int |
getTaskCount()
Gets the number of tasks.
|
RecurringTaskStatistics |
getTaskData(RecurringTask task)
Gets a copy of the performance metrics associated with the given
recurring task.
|
Iterable<RecurringTask> |
getTasks()
Gets the list of tasks.
|
RecurringTaskStatistics |
removeTask(RecurringTask task)
Removes a task so that it is no longer executed on a recurring basis.
|
void |
start()
Starts running the scheduler.
|
void |
stop()
Stops running the scheduler.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
close
public RecurringTaskScheduler()
ThreadingPolicy
.public RecurringTaskScheduler(int numberOfThreads)
numberOfThreads
- The number of threads to use to run tasks.ArgumentOutOfRangeException
- Thrown if the value of numberOfThreads
is
less than 1.public final void start()
NumberOfThreads
(get
) threads
have been started.IllegalStateException
- Thrown if the scheduler is already running.public final boolean getIsRunning()
public final void stop()
InterruptedException
IllegalStateException
- Thrown if the scheduler is not running.public void dispose()
IDisposable
dispose
in interface IDisposable
public final int getNumberOfThreads()
public final void addTask(Duration period, RecurringTask task)
period
- The period at which to execute the task.task
- The task to add.ArgumentNullException
- Thrown if task
is null.public final RecurringTaskStatistics removeTask(RecurringTask task)
task
- The task to remove.ArgumentNullException
- Thrown if task
is null.ArgumentException
- Thrown if task
was never added to the
scheduler.public final int getTaskCount()
public final Iterable<RecurringTask> getTasks()
public final RecurringTaskStatistics getTaskData(RecurringTask task)
ArgumentNullException
- Thrown if task
is null.ArgumentException
- Thrown if task
was never added to the
scheduler.