From ffa7ce55ee395fca89e322e6026086257d708e15 Mon Sep 17 00:00:00 2001 From: uye <99072975+ABA2396@users.noreply.github.com> Date: Wed, 13 Nov 2024 01:19:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B0=9D=E8=AF=95=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E6=9D=A1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/ViewModels/UI/RootViewModel.cs | 33 +++++++++++++++----- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/src/MaaWpfGui/ViewModels/UI/RootViewModel.cs b/src/MaaWpfGui/ViewModels/UI/RootViewModel.cs index 71f0441bae..7a94941283 100644 --- a/src/MaaWpfGui/ViewModels/UI/RootViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/RootViewModel.cs @@ -15,9 +15,11 @@ using System; using System.Threading.Tasks; using System.Windows; using System.Windows.Media; +using HandyControl.Tools; using MaaWpfGui.Constants; using MaaWpfGui.Helper; using MaaWpfGui.Main; +using Microsoft.VisualBasic.Logging; using Microsoft.WindowsAPICodePack.Taskbar; using Stylet; @@ -104,14 +106,31 @@ namespace MaaWpfGui.ViewModels.UI set { SetAndNotify(ref _taskProgress, value); - if (value is null) + + Execute.OnUIThreadAsync(() => { - TaskbarManager.Instance.SetProgressValue(0, 0); - } - else - { - TaskbarManager.Instance.SetProgressValue(value.Value.Current, value.Value.Max); - } + if (Application.Current.MainWindow == null || !Application.Current.MainWindow.IsVisible) + { + return; + } + + try + { + if (value is null) + { + TaskbarManager.Instance.SetProgressValue(0, 0); + } + else + { + TaskbarManager.Instance.SetProgressValue(value.Value.Current, value.Value.Max); + } + } + catch (Exception e) + { + // 不知道会不会有异常,先捕获一下 + Logger.Warning("TaskbarManager Exception: " + e.Message); + } + }); } }