public BackgroundWorkerContinuation Work(BackgroundWorkerContext context, CancellationToken token) { if (token.IsCancellationRequested) { return(context.Exit()); } if (context.InvocationCount == 1) { foreach (BackgroundServerHost host in _servers) { try { host.Start(); _isRunning.Add(host); } catch (Exception ex) { LogError(host, ex); } } _output($"Started {_isRunning.Count} server(s)"); return(context.Wait(_configuration.HouseKeepingInterval)); } // Calculates whether to output status text or not, depending on number of iterations. bool outputStatus = _configuration.OutputStatusText(context.InvocationCount); CheckIsRunning(outputStatus); if (ExitHouseKeeping()) { _output("Exiting (no more servers left to monitor)"); Dispose(); return(context.Exit()); } if (outputStatus) { _output($"{_isRunning.Count} server(s) running. Uptime: {_uptime.GetUptimeText(_startedAt)}"); } return(context.Wait(_configuration.HouseKeepingInterval)); }
public BackgroundWorkerContinuation Work(BackgroundWorkerContext context, CancellationToken token) { _writer.WriteLine("Adding message"); _queue.Add(_factory.Message); return(context.Exit()); }
public BackgroundWorkerContinuation Work(BackgroundWorkerContext context, CancellationToken token) { if (context.InvocationCount == 10) { return(context.Exit()); } return(context.Wait(TimeSpan.FromSeconds(1))); }
public BackgroundWorkerContinuation Work(BackgroundWorkerContext context, CancellationToken token) { _bus.SendLocal(_message).Wait(token); return(context.Exit()); }