From b8889bad86d9f0a9cb87cca3925895272c6832db Mon Sep 17 00:00:00 2001 From: DHR60 <192860629+DHR60@users.noreply.github.com> Date: Thu, 16 Jul 2026 09:36:51 +0000 Subject: [PATCH] Fix (#9768) --- v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs | 9 +++++++-- v2rayN/ServiceLib/ViewModels/ProfilesViewModel.cs | 7 +++++-- v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs | 7 +------ 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs b/v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs index 085ecc74..611c2cab 100644 --- a/v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs +++ b/v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs @@ -263,6 +263,11 @@ public class MainWindowViewModel : MyReactiveObject #endregion AppEvents + ProfilesViewModel.RefreshServersRequested + .AsObservable() + .ObserveOn(RxSchedulers.MainThreadScheduler) + .Subscribe(async _ => await RefreshServers()); + var vmReloadRequestedList = new List> { ProfilesViewModel.ReloadRequested.AsObservable(), @@ -394,8 +399,8 @@ public class MainWindowViewModel : MyReactiveObject private async Task RefreshServers() { - await ProfilesViewModel.RefreshServers(); - await StatusBarViewModel.RefreshServers(); + await ProfilesViewModel.RefreshServersBiz(); + await StatusBarViewModel.RefreshServersBiz(); // await Task.Delay(200); } diff --git a/v2rayN/ServiceLib/ViewModels/ProfilesViewModel.cs b/v2rayN/ServiceLib/ViewModels/ProfilesViewModel.cs index 15ff8b26..1cf2ddc9 100644 --- a/v2rayN/ServiceLib/ViewModels/ProfilesViewModel.cs +++ b/v2rayN/ServiceLib/ViewModels/ProfilesViewModel.cs @@ -11,6 +11,7 @@ public class ProfilesViewModel : MyReactiveObject public Interaction AdjustMainLvColWidthInteraction { get; } = new(); public EventChannel ReloadRequested { get; } = new(); + public EventChannel RefreshServersRequested { get; } = new(); #region private prop @@ -368,12 +369,14 @@ public class ProfilesViewModel : MyReactiveObject public async Task RefreshServers() { - await RefreshServersBiz(); + RefreshServersRequested.Publish(); // await Task.Delay(200); + + await Task.CompletedTask; } - private async Task RefreshServersBiz() + public async Task RefreshServersBiz() { var lstModel = await GetProfileItemsEx(_config.SubIndexId, _serverFilter); _lstProfile = JsonUtils.Deserialize>(JsonUtils.Serialize(lstModel)) ?? []; diff --git a/v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs b/v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs index 3ba82c63..8de4189c 100644 --- a/v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs +++ b/v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs @@ -264,12 +264,7 @@ public class StatusBarViewModel : MyReactiveObject await Task.Delay(1000); } - public async Task RefreshServers() - { - await RefreshServersBiz(); - } - - private async Task RefreshServersBiz() + public async Task RefreshServersBiz() { await RefreshServersMenu();