我有一些业务逻辑,它执行一些长时间的计算,返回结果,并且不接受任何 CancellationTokenSources,因此,不检查它的 isCancellationRequested 属性。
public class Result
{
}
public class LongTask
{
public Result Run()
{
Thread.Sleep(10000);
return new Result();
}
}
我希望我的 UI(MAUI,如果重要的话)不仅能够运行该业务逻辑并异步更新一些带有收到结果的标签,而且还能够取消该操作。
那么我该怎么做呢?在不改变业务逻辑的情况下这是否可能?有需要请随时询问详情。
最佳实践仍然是更改业务逻辑并使用 CancellationToken 结构。但是您可以做的是添加一个计数,当达到该计数时返回任务。