Task记录3 :ContinueWith ,CancellationToken,的结合

 static void Main(string[] args)

        {
            //1.创建取消令牌数据
            CancellationTokenSource tokenSource = new CancellationTokenSource();
            //2.创建取消令牌
            CancellationToken token = tokenSource.Token;
         Task.Run(() =>
            {
                    for (int i = 0; i < 20; i++)
                    {

                        Console.WriteLine(i);
                    }
                    //这里我们取消判断  如果这里不执行, 那么newTask肯定不会执行, 上文说newTask为新的Task
            }).ContinueWith(NewTask,token);
//3.注册取消委托 如果我们没有取消令牌 那么我们延续操作不会执行,如果我们存在,则第一个执行
token.Register((() => { Console.WriteLine("延续操作"); }));
tokenSource.Cancel();//取消令牌 Console.ReadLine(); }
private static void NewTask(Task T) { Console.WriteLine("上一个Task执行完毕,现在执行newTask"); } }

用处:一样 就是我们是否取消,根据取消状态来执行不同的任务

posted @ 2022-12-02 11:43  园友2288976  阅读(69)  评论(0编辑  收藏  举报