mirror of
https://github.com/babalae/better-genshin-impact.git
synced 2026-05-10 00:44:10 +08:00
fix: update RunTask method to support nullable CancellationTokenSource and add linked cancellation token methods
This commit is contained in:
@@ -93,7 +93,7 @@ public class Dispatcher
|
||||
/// <param name="customCts">自定义取消令牌源,允许从JS控制任务取消</param>
|
||||
/// <exception cref="ArgumentNullException"></exception>
|
||||
/// <exception cref="ArgumentException"></exception>
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public CancellationTokenSource GetLinkedCancellationTokenSource()
|
||||
{
|
||||
// 创建一个新的链接令牌源,链接到全局令牌
|
||||
return CancellationTokenSource.CreateLinkedTokenSource(CancellationContext.Instance.Cts.Token);
|
||||
}
|
||||
|
||||
|
||||
public CancellationToken GetLinkedCancellationToken()
|
||||
{
|
||||
return GetLinkedCancellationTokenSource().Token;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user