带有参数的取消任务

时间:2019-04-19 09:53:44

标签: c# multithreading task

我确实有一个无限循环,可以执行一些操作。我希望能够以特定原因取消当前的操作。但是,我找不到使用paremetr的cancell任务的解决方案。

private async void ProcessAsync()
{
    while (true)
    {
        try
        {
            var result = await Task<object>.Run(async () =>
            {
                await Task.Delay(10000);

                await Task.Delay(10000);

                return new object();

            }, _cts.Token);
        }
        catch (OperationCanceledException)
        {
        }
        //catch (AnyOtherException)  
        //{
        //
        //} 
    }
}

每当我想取消任务时,我都会调用CancellationTokenSource.Cancel()方法。该方法不接受任何争论。我所能做的就是捕获OperationCanceledException。

是解决该问题的另一种方法还是实现我想要的另一种方法?

0 个答案:

没有答案