コード例 #1
0
 void DoServerTrackingLater(Action onTimeout)
 {
     lazyServerTrackingTimer?.Release();
     lazyServerTrackingTimer = null;
     lazyServerTrackingTimer = new Lib.Sys.CancelableTimeout(onTimeout, 2000);
     lazyServerTrackingTimer.Start();
 }
コード例 #2
0
ファイル: Servers.cs プロジェクト: ultranijia/V2RayGCon
 public void SetLazyServerTrackerUpdater(Action onTimeout)
 {
     lazyServerTrackerTimer?.Release();
     lazyServerTrackerTimer = null;
     lazyServerTrackerTimer = new Lib.Sys.CancelableTimeout(onTimeout, 2000);
     lazyServerTrackerTimer.Start();
 }
コード例 #3
0
ファイル: ServerTracker.cs プロジェクト: wscloudy/V2RayGCon
 void WakeupLazyProxyUpdater()
 {
     if (lazyProxyUpdateTimer == null)
     {
         lazyProxyUpdateTimer =
             new Lib.Sys.CancelableTimeout(
                 LazyProxyUpdater, 2000);
     }
     lazyProxyUpdateTimer.Start();
 }
コード例 #4
0
ファイル: PACServer.cs プロジェクト: zxniuniu/V2RayGCon
        void LazyCustomPacFileCacheUpdate()
        {
            if (lazyCustomPacFileCacheUpdateTimer == null)
            {
                lazyCustomPacFileCacheUpdateTimer =
                    new Lib.Sys.CancelableTimeout(
                        UpdateCustomPacCache, 2000);
            }

            lazyCustomPacFileCacheUpdateTimer.Start();
        }
コード例 #5
0
ファイル: PACServer.cs プロジェクト: lhkhry/V2RayGCon
        void LazyCustomPacFileCacheUpdate()
        {
            // this program is getting lazier and lazier.
            if (lazyCustomPacFileCacheUpdateTimer == null)
            {
                lazyCustomPacFileCacheUpdateTimer = new Lib.Sys.CancelableTimeout(
                    UpdateCustomPacCache, 2000);
            }

            lazyCustomPacFileCacheUpdateTimer.Start();
        }
コード例 #6
0
ファイル: Servers.cs プロジェクト: ultranijia/V2RayGCon
        void LazyUpdateNotifyTextHandler(object sender, EventArgs args)
        {
            if (lazyUpdateNotifyTextTimer == null)
            {
                lazyUpdateNotifyTextTimer =
                    new Lib.Sys.CancelableTimeout(
                        UpdateNotifierText,
                        2000);
            }

            lazyUpdateNotifyTextTimer.Start();
        }
コード例 #7
0
        public void LazyGC()
        {
            // Create on demand.
            if (lazyGCTimer == null)
            {
                lazyGCTimer = new Lib.Sys.CancelableTimeout(
                    () => GC.Collect(),
                    1000 * Lib.Utils.Str2Int(StrConst.LazyGCDelay));
            }

            lazyGCTimer.Start();
        }
コード例 #8
0
ファイル: Setting.cs プロジェクト: sssimon66/V2RayGCon
        void LazySaveUserSettings()
        {
            if (lazySaveUserSettingsTimer == null)
            {
                lazySaveUserSettingsTimer = new Lib.Sys.CancelableTimeout(
                    SaveUserSettingsNow,
                    1000 * Lib.Utils.Str2Int(
                        StrConst.LazySaveUserSettingsDelay));
            }

            lazySaveUserSettingsTimer.Start();
        }
コード例 #9
0
ファイル: FlyServer.cs プロジェクト: zxniuniu/V2RayGCon
        public void LazyStatusBarUpdater()
        {
            // create on demand
            if (lazyStatusBarUpdateTimer == null)
            {
                lazyStatusBarUpdateTimer =
                    new Lib.Sys.CancelableTimeout(
                        UpdateStatusBar,
                        300);
            }

            lazyStatusBarUpdateTimer.Start();
        }
コード例 #10
0
ファイル: Servers.cs プロジェクト: ultranijia/V2RayGCon
        void LazySaveServerList()
        {
            // create on demand
            if (lazySaveServerListTimer == null)
            {
                var delay = Lib.Utils.Str2Int(StrConst.LazySaveServerListDelay);

                lazySaveServerListTimer =
                    new Lib.Sys.CancelableTimeout(
                        () => setting.SaveServerList(serverList),
                        delay * 1000);
            }

            lazySaveServerListTimer.Start();
        }
コード例 #11
0
ファイル: PACServer.cs プロジェクト: zxniuniu/V2RayGCon
 void LazyInvokeOnPacServerStateChange()
 {
     // Create on demand.
     if (lazyStateChangeTimer == null)
     {
         lazyStateChangeTimer = new Lib.Sys.CancelableTimeout(
             () =>
         {
             try
             {
                 OnPACServerStateChanged?.Invoke(this, EventArgs.Empty);
             }
             catch { }
         },
             1000);
     }
     lazyStateChangeTimer.Start();
 }
コード例 #12
0
ファイル: PACServer.cs プロジェクト: lhkhry/V2RayGCon
        public void LazySysProxyUpdater(bool isSocks, string ip, int port)
        {
            lazySysProxyUpdaterTimer?.Release();
            lazySysProxyUpdaterTimer = null;

            var proxySetting = setting.GetSysProxySetting();

            Action setProxy = null;

            switch (DetectSystemProxyMode(proxySetting))
            {
            case Model.Data.Enum.SystemProxyMode.None:
                return;

            case Model.Data.Enum.SystemProxyMode.PAC:
                // get current pac mode (white list or black list)
                var p = Lib.Utils.GetProxyParamsFromUrl(proxySetting.autoConfigUrl);
                if (p == null)
                {
                    p = new Model.Data.PacUrlParams();
                }
                p.ip      = ip;
                p.port    = port;
                p.isSocks = isSocks;
                setProxy  = () => SetPACProx(p);
                break;

            case Model.Data.Enum.SystemProxyMode.Global:
                // global proxy must be http
                if (isSocks)
                {
                    return;
                }
                setProxy = () => SetGlobalProxy(ip, port);
                break;
            }

            lazySysProxyUpdaterTimer = new Lib.Sys.CancelableTimeout(setProxy, 1000);
            lazySysProxyUpdaterTimer.Start();
        }
コード例 #13
0
ファイル: FlyServer.cs プロジェクト: zxniuniu/V2RayGCon
        void LazyShowSearchResult()
        {
            // create on demand
            if (lazyShowSearchResultTimer == null)
            {
                lazyShowSearchResultTimer =
                    new Lib.Sys.CancelableTimeout(
                        () =>
                {
                    // 如果不RemoveAll会乱序
                    RemoveAllServersConrol();

                    // 修改搜索项时应该清除选择,否则会有可显示列表外的选中项
                    servers.SetAllServerIsSelected(false);

                    RefreshUI();
                },
                        600);
            }

            lazyShowSearchResultTimer.Start();
        }