public void Start(bool immediate = false) { if (_scheduler == null) { _scheduler = new QueuedTaskScheduler(_threads); } Background.Produce(SeedTasksFromQueue, _settings.SleepInterval); Background.Start(immediate); Maintenance.Produce(HangingTasks, TimeSpan.FromMinutes(5)); Maintenance.Start(immediate); }