diff --git a/v2rayN/v2rayN/Handler/ClashApiHandler.cs b/v2rayN/v2rayN/Handler/ClashApiHandler.cs index bc2daa769e..b749e2cd1b 100644 --- a/v2rayN/v2rayN/Handler/ClashApiHandler.cs +++ b/v2rayN/v2rayN/Handler/ClashApiHandler.cs @@ -8,19 +8,9 @@ public sealed class ClashApiHandler private static readonly Lazy instance = new(() => new()); public static ClashApiHandler Instance => instance.Value; - private Dictionary _proxies; + private Dictionary? _proxies; public Dictionary ProfileContent { get; set; } - public void SetProxies(Dictionary proxies) - { - _proxies = proxies; - } - - public Dictionary GetProxies() - { - return _proxies; - } - public void GetClashProxies(Config config, Action update) { Task.Run(() => GetClashProxiesAsync(config, update)); @@ -40,10 +30,11 @@ private async Task GetClashProxiesAsync(Config config, Action lstProxy, Ac { for (int i = 0; i < 5; i++) { - if (GetProxies() != null) + if (_proxies != null) { break; } - Thread.Sleep(5000); + Task.Delay(5000).Wait(); } - var proxies = GetProxies(); - if (proxies == null) + if (_proxies == null) { return; } lstProxy = new List(); - foreach (KeyValuePair kv in proxies) + foreach (KeyValuePair kv in _proxies) { if (Global.notAllowTestType.Contains(kv.Value.type.ToLower())) { @@ -106,7 +96,7 @@ public void ClashProxiesDelayTest(bool blAll, List lstProxy, Ac } Task.WaitAll(tasks.ToArray()); - Thread.Sleep(1000); + Task.Delay(1000).Wait(); update(null, ""); }); } @@ -148,8 +138,7 @@ public void ClashConfigUpdate(Dictionary headers) { Task.Run(async () => { - var proxies = GetProxies(); - if (proxies == null) + if (_proxies == null) { return; } diff --git a/v2rayN/v2rayN/Handler/CoreHandler.cs b/v2rayN/v2rayN/Handler/CoreHandler.cs index 69e6aedec2..936521361b 100644 --- a/v2rayN/v2rayN/Handler/CoreHandler.cs +++ b/v2rayN/v2rayN/Handler/CoreHandler.cs @@ -46,12 +46,6 @@ public void LoadCore(ProfileItem? node) ShowMsg(false, msg); ShowMsg(true, $"{node.GetSummary()}"); CoreStop(); - //if (_config.tunModeItem.enableTun) - //{ - // Thread.Sleep(1000); - // WindowsUtils.RemoveTunDevice(); - //} - CoreStart(node); //In tun mode, do a delay check and restart the core diff --git a/v2rayN/v2rayN/ViewModels/ClashConnectionsViewModel.cs b/v2rayN/v2rayN/ViewModels/ClashConnectionsViewModel.cs index 43de0b5c94..5d29d2cf53 100644 --- a/v2rayN/v2rayN/ViewModels/ClashConnectionsViewModel.cs +++ b/v2rayN/v2rayN/ViewModels/ClashConnectionsViewModel.cs @@ -96,7 +96,7 @@ private void Init() GetClashConnections(); lastTime = dtNow; } - Thread.Sleep(1000); + Task.Delay(1000).Wait(); } }); } diff --git a/v2rayN/v2rayN/ViewModels/ClashProxiesViewModel.cs b/v2rayN/v2rayN/ViewModels/ClashProxiesViewModel.cs index 48b4e91bee..3a74ca49fc 100644 --- a/v2rayN/v2rayN/ViewModels/ClashProxiesViewModel.cs +++ b/v2rayN/v2rayN/ViewModels/ClashProxiesViewModel.cs @@ -17,9 +17,9 @@ namespace v2rayN.ViewModels { public class ClashProxiesViewModel : MyReactiveObject { - private Dictionary? proxies; - private Dictionary? providers; - private int delayTimeout = 99999999; + private Dictionary? _proxies; + private Dictionary? _providers; + private int _delayTimeout = 99999999; private IObservableCollection _proxyGroups = new ObservableCollectionExtended(); private IObservableCollection _proxyDetails = new ObservableCollectionExtended(); @@ -175,11 +175,10 @@ private void GetClashProxies(bool refreshUI) ClashApiHandler.Instance.GetClashProxies(_config, (it, it2) => { //UpdateHandler(false, "Refresh Clash Proxies"); - proxies = it?.proxies; - providers = it2?.providers; + _proxies = it?.proxies; + _providers = it2?.providers; - ClashApiHandler.Instance.SetProxies(proxies); - if (proxies == null) + if (_proxies == null) { return; } @@ -200,11 +199,11 @@ public void RefreshProxyGroups() { foreach (var it in proxyGroups) { - if (string.IsNullOrEmpty(it.name) || !proxies.ContainsKey(it.name)) + if (string.IsNullOrEmpty(it.name) || !_proxies.ContainsKey(it.name)) { continue; } - var item = proxies[it.name]; + var item = _proxies[it.name]; if (!Global.allowSelectType.Contains(item.type.ToLower())) { continue; @@ -219,7 +218,7 @@ public void RefreshProxyGroups() } //from api - foreach (KeyValuePair kv in proxies) + foreach (KeyValuePair kv in _proxies) { if (!Global.allowSelectType.Contains(kv.Value.type.ToLower())) { @@ -267,12 +266,12 @@ private void RefreshProxyDetails(bool c) { return; } - if (proxies == null) + if (_proxies == null) { return; } - proxies.TryGetValue(name, out ProxiesItem proxy); + _proxies.TryGetValue(name, out ProxiesItem proxy); if (proxy == null || proxy.all == null) { return; @@ -298,7 +297,7 @@ private void RefreshProxyDetails(bool c) isActive = isActive, name = item, type = proxy2.type, - delay = delay <= 0 ? delayTimeout : delay, + delay = delay <= 0 ? _delayTimeout : delay, delayName = delay <= 0 ? string.Empty : $"{delay}ms", }); } @@ -321,17 +320,17 @@ private void RefreshProxyDetails(bool c) private ProxiesItem? TryGetProxy(string name) { - if (proxies is null) + if (_proxies is null) return null; - proxies.TryGetValue(name, out ProxiesItem proxy2); + _proxies.TryGetValue(name, out ProxiesItem proxy2); if (proxy2 != null) { return proxy2; } //from providers - if (providers != null) + if (_providers != null) { - foreach (KeyValuePair kv in providers) + foreach (KeyValuePair kv in _providers) { if (Global.proxyVehicleType.Contains(kv.Value.vehicleType.ToLower())) { @@ -424,12 +423,12 @@ public void ProxiesDelayTestResult(SpeedTestResult result) } else if (dicResult != null && dicResult.ContainsKey("message")) { - detail.delay = delayTimeout; + detail.delay = _delayTimeout; detail.delayName = $"{dicResult["message"]}"; } else { - detail.delay = delayTimeout; + detail.delay = _delayTimeout; detail.delayName = String.Empty; } _proxyDetails.Replace(detail, JsonUtils.DeepCopy(detail)); @@ -459,7 +458,7 @@ public void DelayTestTask() ProxiesDelayTest(); lastTime = dtNow; } - Thread.Sleep(1000); + Task.Delay(1000).Wait(); } }); } diff --git a/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs b/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs index 7afacf58c0..e48577da3b 100644 --- a/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs +++ b/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs @@ -828,8 +828,8 @@ await Task.Run(() => { if (_config.tunModeItem.enableTun) { - Thread.Sleep(1000); - //WindowsUtils.RemoveTunDevice(); + Task.Delay(1000).Wait(); + WindowsUtils.RemoveTunDevice(); } var node = ConfigHandler.GetDefaultServer(_config); diff --git a/v2rayN/v2rayN/v2rayN.csproj b/v2rayN/v2rayN/v2rayN.csproj index 179f4124d3..972307ef2a 100644 --- a/v2rayN/v2rayN/v2rayN.csproj +++ b/v2rayN/v2rayN/v2rayN.csproj @@ -17,7 +17,7 @@ - +