gpt4 book ai didi

c# - 我是否需要创建一个新的 CancellationTokenSource();任务取消后?

转载 作者:行者123 更新时间:2023-12-03 13:48:25 33 4
gpt4 key购买 nike

我有一个这样的应用程序:

我有一个应用程序,其中一部分代码在带有计时器延迟的循环中运行。在申请开始时,我声明:

public static CancellationTokenSource tokenSource1 = new CancellationTokenSource();
public static bool Timer1Running;

这是循环区域:
 while (App.runCardTimer && App.TimerSeconds > 0)
{
App.Timer1Running = true;

try
{
await Task.Delay(1000, App.tokenSource2.Token);
}
catch (TaskCanceledException ex) { }
App.TimerSeconds--;
App.Timer1Running = false;
}

我的应用程序响应这样的点击屏幕:
wordGrid.GestureRecognizers.Add(       
new TapGestureRecognizer()
{
Command = new Command(() =>
{
App.TimerSeconds = 0;
if (App.tokenSource1 != null && App.Timer1Running)
{
App.tokenSource1.Cancel();
}
})
});

我对取消 token 感到困惑。一旦我发表声明:
App.tokenSource1.Cancel(); 

我是否需要像这样创建一个新的取消 token :
tokenSource1 = new CancellationTokenSource();

或者我可以继续重复使用吗?

最佳答案

CancellationToken 和任务都是一次性实体,使用后应丢弃。

您的基本方法是:

  • 创建 CancellationTokenSource
  • 触发任务并传递它(它们) CancellationToken
  • 等待任务完成、取消或失败;
  • 如果您需要重复操作,请转到第一个列表项。
  • 关于c# - 我是否需要创建一个新的 CancellationTokenSource();任务取消后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45915398/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com