.NET 中如何在不传递 CancellationTokenSource 的情况下取消任务?

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

我有一些业务逻辑,它执行一些长时间的计算,返回结果,并且不接受任何 CancellationTokenSources,因此,不检查它的 isCancellationRequested 属性。

public class Result
{
    
}

public class LongTask
{
    public Result Run()
    {
        Thread.Sleep(10000);
        return new Result();
    }
}

我希望我的 UI(MAUI,如果重要的话)不仅能够运行该业务逻辑并异步更新一些带有收到结果的标签,而且还能够取消该操作。

那么我该怎么做呢?在不改变业务逻辑的情况下这是否可能?有需要请随时询问详情。

c# .net asynchronous
1个回答
0
投票

最佳实践仍然是更改业务逻辑并使用 CancellationToken 结构。但是您可以做的是添加一个计数,当达到该计数时返回任务。

© www.soinside.com 2019 - 2024. All rights reserved.