C# 使用CancellationTokenSource 取消Task执行

写在前面

在Task创建并执行后,如果状态发生了变化,需要取消正在执行中的Task,除了使用主线程上的共享变量来判断之外,更优雅的方式就是就是用CancellationTokenSource来取消任务的执行。

代码实现

        public static void CancelTaskTest01()
        {
            var source = new CancellationTokenSource();
            // 注册Task被取消后的处理方法
            source.Token.Register(() => {
                Console.WriteLine("通知 task01 被取消了");
            });

            var counter = 1;
            var task01 = new Task(() => {
                while (!source.IsCancellationRequested)
                {
                    Thread.Sleep(2000);
                    Console.WriteLine($"第{counter++}次");
                }
                if (source.IsCancellationRequested)
                {
                    Console.WriteLine($"第{counter}次真正结束");
                }
            });
            task01.Start();
            // 9秒后取消task01,由于第5次执行的时候已经通过了判断,所以事实上是第6次才被取消
            source.CancelAfter(9000);
        }

执行结果

相关推荐

  1. C# Task任务详细讲解

    2023-12-11 04:22:03       40 阅读
  2. Spring Task 定时任务没有定时执行是为什么?

    2023-12-11 04:22:03       34 阅读
  3. Maximo 使用 REST API 创建 Cron Task

    2023-12-11 04:22:03       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-11 04:22:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-11 04:22:03       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-11 04:22:03       87 阅读
  4. Python语言-面向对象

    2023-12-11 04:22:03       96 阅读

热门阅读

  1. 图的深度和广度优先遍历

    2023-12-11 04:22:03       48 阅读
  2. NeuralKG运行备忘

    2023-12-11 04:22:03       62 阅读
  3. ngixn 准备

    2023-12-11 04:22:03       48 阅读
  4. python 高速去重比list 快速

    2023-12-11 04:22:03       58 阅读
  5. 2023阿里智能互联算法工程师 机器学习一面

    2023-12-11 04:22:03       54 阅读
  6. Linux下开发常用的CVS使用手册

    2023-12-11 04:22:03       49 阅读
  7. git 常用部分方法

    2023-12-11 04:22:03       37 阅读
  8. Git全局设置命令---设置提交人姓名

    2023-12-11 04:22:03       65 阅读
  9. 编程环境与平台

    2023-12-11 04:22:03       52 阅读
  10. QT linux下使用Qt Creator调试附加进程,加快调试

    2023-12-11 04:22:03       51 阅读