コード例 #1
0
ファイル: Servers.cs プロジェクト: thatformat/V2RayGCon
        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.");
        }
コード例 #2
0
ファイル: Servers.cs プロジェクト: ultranijia/V2RayGCon
        public void Cleanup()
        {
            setting.isServerTrackerOn = false;
            lazySaveServerListTimer?.Timeout();
            AutoResetEvent sayGoodbye = new AutoResetEvent(false);

            StopAllServersThen(() => sayGoodbye.Set());
            sayGoodbye.WaitOne();
            DisposeLazyTimers();
        }