public void Resume()
{
if (Status != WorkerStatus.Paused)
{
throw new InvalidOperationException(
"Cannot resume this worker because it has not yet been paused");
}
Status = WorkerStatus.Idle;
pauseEvent.Set();
cancellationTokenSource = new CancellationTokenSource();
}