diff --git a/BetterGenshinImpact/Core/Script/Dependence/Dispatcher.cs b/BetterGenshinImpact/Core/Script/Dependence/Dispatcher.cs index e5e1b19d..99b5026a 100644 --- a/BetterGenshinImpact/Core/Script/Dependence/Dispatcher.cs +++ b/BetterGenshinImpact/Core/Script/Dependence/Dispatcher.cs @@ -93,7 +93,7 @@ public class Dispatcher /// 自定义取消令牌源,允许从JS控制任务取消 /// /// - public async Task RunTask(SoloTask soloTask, System.Threading.CancellationTokenSource customCts = null) + public async Task RunTask(SoloTask soloTask, CancellationTokenSource? customCts = null) { if (soloTask == null) { @@ -107,7 +107,7 @@ public class Dispatcher } // 创建一个链接的取消令牌源,同时监听自定义令牌和全局令牌 - CancellationTokenSource linkedCts = null; + CancellationTokenSource? linkedCts = null; CancellationToken cancellationToken; if (customCts != null) @@ -171,4 +171,16 @@ public class Dispatcher linkedCts?.Dispose(); } } -} \ No newline at end of file + + public CancellationTokenSource GetLinkedCancellationTokenSource() + { + // 创建一个新的链接令牌源,链接到全局令牌 + return CancellationTokenSource.CreateLinkedTokenSource(CancellationContext.Instance.Cts.Token); + } + + + public CancellationToken GetLinkedCancellationToken() + { + return GetLinkedCancellationTokenSource().Token; + } +}