From c49ba735a01ee2ee28be9311e55f1bf4e03ecddc Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Mon, 16 Dec 2024 21:05:36 +0800 Subject: [PATCH] Optimize code --- v2rayN/ServiceLib/ViewModels/MsgViewModel.cs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/v2rayN/ServiceLib/ViewModels/MsgViewModel.cs b/v2rayN/ServiceLib/ViewModels/MsgViewModel.cs index 1a679383..d5384d4d 100644 --- a/v2rayN/ServiceLib/ViewModels/MsgViewModel.cs +++ b/v2rayN/ServiceLib/ViewModels/MsgViewModel.cs @@ -9,7 +9,6 @@ namespace ServiceLib.ViewModels { private ConcurrentQueue _queueMsg = new(); private int _numMaxMsg = 500; - private string _lastMsgFilter = string.Empty; private bool _lastMsgFilterNotAvailable; private bool _blLockShow = false; @@ -28,7 +27,7 @@ namespace ServiceLib.ViewModels this.WhenAnyValue( x => x.MsgFilter) - .Subscribe(c => _config.MsgUIItem.MainMsgFilter = MsgFilter); + .Subscribe(c => DoMsgFilter()); this.WhenAnyValue( x => x.AutoRefresh, @@ -77,8 +76,7 @@ namespace ServiceLib.ViewModels private async Task EnqueueQueueMsg(string msg) { //filter msg - if (MsgFilter != _lastMsgFilter) _lastMsgFilterNotAvailable = false; - if (Utils.IsNotEmpty(MsgFilter) && !_lastMsgFilterNotAvailable) + if (MsgFilter.IsNotEmpty() && !_lastMsgFilterNotAvailable) { try { @@ -87,12 +85,12 @@ namespace ServiceLib.ViewModels return; } } - catch (Exception) + catch (Exception ex) { + _queueMsg.Enqueue(ex.Message); _lastMsgFilterNotAvailable = true; } } - _lastMsgFilter = MsgFilter; //Enqueue if (_queueMsg.Count > _numMaxMsg) @@ -113,5 +111,11 @@ namespace ServiceLib.ViewModels { _queueMsg.Clear(); } + + private void DoMsgFilter() + { + _config.MsgUIItem.MainMsgFilter = MsgFilter; + _lastMsgFilterNotAvailable = false; + } } } \ No newline at end of file