public async Task StopAsync(CancellationToken cancellationToken)
 {
     if (_Stop == null)
     {
         return;
     }
     _Stop.Cancel();
     try
     {
         await _Loop;
     }
     catch (OperationCanceledException)
     {
     }
     try
     {
         await BackgroundJobClient.WaitAllRunning(cancellationToken);
     }
     catch (OperationCanceledException)
     {
     }
 }
 public Task StartAsync(CancellationToken cancellationToken)
 {
     _Stop = new CancellationTokenSource();
     _Loop = BackgroundJobClient.ProcessJobs(_Stop.Token);
     return(Task.CompletedTask);
 }