protected override void Cleanup() { setting.isServerTrackerOn = false; if (setting.ShutdownReason == VgcApis.Models.Datas.Enum.ShutdownReasons.Abort) { return; } VgcApis.Libs.Sys.FileLogger.Info("Services.Servers.Cleanup"); VgcApis.Libs.Sys.FileLogger.Info("Services.StopTracking"); lazyServerTrackingTimer?.Timeout(); lazyServerTrackingTimer?.Release(); VgcApis.Libs.Sys.FileLogger.Info("Services.SaveSettings"); serverSaver.DoItNow(); serverSaver.Quit(); VgcApis.Libs.Sys.FileLogger.Info("Stop cores quiet begin."); var list = coreServList; foreach (var core in list) { core.GetCoreCtrl().StopCoreQuiet(); } VgcApis.Libs.Sys.FileLogger.Info("Stop cores quiet done."); }
public void Cleanup() { setting.isServerTrackerOn = false; lazySaveServerListTimer?.Timeout(); AutoResetEvent sayGoodbye = new AutoResetEvent(false); StopAllServersThen(() => sayGoodbye.Set()); sayGoodbye.WaitOne(); DisposeLazyTimers(); }