From b3801e64eeb41882c0b6ba2bce659ebcb87dd69b Mon Sep 17 00:00:00 2001 From: status102 <102887808+status102@users.noreply.github.com> Date: Sat, 30 May 2026 17:45:29 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BB=85=E5=9C=A8LinkStart=E6=97=B6?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E5=AE=8C=E6=88=90=E5=90=8E=E5=8A=A8=E4=BD=9C?= =?UTF-8?q?,=20=E9=81=BF=E5=85=8D=E5=8D=95=E6=AC=A1=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E6=97=B6=E8=A7=A6=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaWpfGui/Main/AsstProxy.cs | 9 +++++++-- src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs | 8 +++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs index 8b3ca8050d..74d8885582 100644 --- a/src/MaaWpfGui/Main/AsstProxy.cs +++ b/src/MaaWpfGui/Main/AsstProxy.cs @@ -1176,6 +1176,8 @@ public class AsstProxy case AsstMsg.AllTasksCompleted: bool isMainTaskQueueAllCompleted = false; + bool startByLinkStart = Instances.TaskQueueViewModel.StartByLinkStart; + Instances.TaskQueueViewModel.StartByLinkStart = false; var taskList = details["finished_tasks"]?.ToObject(); if (taskList?.Length > 0) { @@ -1287,12 +1289,15 @@ public class AsstProxy } // Instances.TaskQueueViewModel.CheckAndShutdown(); - _ = Instances.TaskQueueViewModel.CheckAfterCompleted(); - if (Instances.OverlayViewModel.IsCreated) { AchievementTrackerHelper.Instance.Unlock(AchievementIds.LogSupervisor); } + + if (startByLinkStart) + { + _ = Instances.TaskQueueViewModel.CheckAfterCompleted(); + } } else if (isCopilotTaskChain) { diff --git a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs index 1778253f40..05d93776f9 100644 --- a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs @@ -29,7 +29,6 @@ using System.Windows; using System.Windows.Controls; using System.Windows.Media.Imaging; using JetBrains.Annotations; -using MaaWpfGui.Configuration; using MaaWpfGui.Configuration.Factory; using MaaWpfGui.Configuration.Single.MaaTask; using MaaWpfGui.Constants; @@ -212,6 +211,8 @@ public class TaskQueueViewModel : Screen }); } + #region Overlay + public static void ChooseOverlayTarget() { try @@ -275,6 +276,8 @@ public class TaskQueueViewModel : Screen } } + #endregion Overlay + /// /// Gets or private sets the view models of log items. /// @@ -435,6 +438,8 @@ public class TaskQueueViewModel : Screen #region ActionAfterTasks + public bool StartByLinkStart { get; set; } + private bool _enableAfterActionSetting; /// @@ -1769,6 +1774,7 @@ public class TaskQueueViewModel : Screen /// Task public async Task LinkStart() { + StartByLinkStart = true; using var log = new LogScope(_logger); await TaskQueueSerializingLock.WaitAsync(); await LinkStartWithTasks(ConfigFactory.CurrentConfig.TaskQueue);