如何使用 C# API 在源代码中停止 API 执行而无需循环活动

问题描述 投票:0回答:1

我必须通过取消令牌停止API执行,在我的方法中没有for循环来检查每次取消请求,如何实现它。我正在使用 .NET core API

我已经尝试过以下代码

private string GetData(CancellationToken cancellationToken)
{
  
    try
    {
       if (cancellationToken.IsCancellationRequested)
           {
                _cts.Cancel();
                return "Task Cancelled";
           }  
        if (condition)
        {
            //Business Logic
        }
        else
        {
            //Business Logic
        }
    }
    catch (Exception e)
    {
        return e.Message.ToString(); ;
    }
}
execution cancellation-token
1个回答
0
投票

我们可以使用 CancellationToken 来停止 API 的执行,而无需使用循环。关键是在正确的地方检查取消请求并采取行动(例如抛出异常或直接返回)来终止任务。

private string GetData(CancellationToken cancellationToken)
{
    try
    {
        if (cancellationToken.IsCancellationRequested)
        {
            throw new OperationCanceledException("Task was canceled.");
        }
        if (condition)
        {
            // Business Logic
        }
        else
        {
            // Business Logic
        }

        return "Data Retrieved Successfully";
    }
    catch (OperationCanceledException)
    {
        return "Task Cancelled";
    }
    catch (Exception e)
    {
        return e.Message;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.