Task.FromCanceled 这个方法的用途是什么?有什么用

问题遇到的现象和发生背景

Task.FromCanceled 它因指定的取消标记进行的取消操作而完成。
而且建议是和await一起用,我没弄懂它的作用是什么,用法是什么?

用代码块功能插入代码,请勿粘贴截图
static void Main(string[] args) {
        DoSth();
        Console.WriteLine($"主线程开始沉睡");
        Thread.Sleep(2000);
        Console.WriteLine($"主线程沉睡结束,顺便结束task");
        cancellationTokenSource.Cancel();
        Console.ReadKey();
    }
    static CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
    static async void  DoSth() {
        Task task = Task.Run(() => {
            Console.WriteLine($"Task任务开始沉睡");
            Thread.Sleep(3000);
            Console.WriteLine($"Task任务沉睡结束,执行完成");
        }, cancellationTokenSource.Token);
        await Task.FromCanceled(cancellationTokenSource.Token);
        Console.WriteLine($"DoSth 任务完成");
    }

运行结果及报错内容

我尝试这样使用 但是报错了

我的解答思路和尝试过的方法

我刚开始以为是持有取消标记的任务被取消就会使await Task.FromCanceled(cancellationTokenSource.Token);的等待结束 而执行后续方法,可是按照我的测试报错了,我现在有点不懂这个方法的用途是什么?

我想要达到的结果

希望 有老哥给详细说下

请加上一句话

try
{
await Task.FromCanceled(cancellationTokenSource.Token);
}
catch
{
}

你就知道问题了,因为他已经挂了。

原因:其实你上一个提问我已经告诉你答案了,而你认为他们告诉你才是真理。

Task.FromResult
Task.CompletedTask
Task.FromException
其实这几个都是一个意思,就是从池里产生一个具备对应状态的Task出来,他不代表task执行,而是代表执行结果

而Task.FromCanceled的正确执行语句为
if(token.IsCancellationRequested)
Task.FromCanceled(token) //取消了情况他会正常执行,没有取消的情况他直接异常

如果令牌取消了,那么产生一个已经取消的task,至于这个task有啥用,你的例子没有用,因为这些东西都是用来 产生结果用来回调通知给外面的
比如

Task xxxx(token)
{
f(token.IsCancellationRequested)
return Task.FromCanceled(token) //这是用来产生一个状态为取消状态的task,同是retrun给上层,告诉上层他取消了
}