} // ctor protected override void Dispose(bool disposing) { try { if (disposing) { CancelJobs(); CronIdleActive = false; Server.Queue.CancelCommand(CancelJobs); Server.Queue.CancelCommand(RefreshCronServices); this.GetService <IServiceContainer>(false)?.RemoveService(typeof(IDECronEngine)); currentJobs.Dispose(); cronItemCacheController.Dispose(); } } finally { base.Dispose(disposing); } } // proc Dispose