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);}

执行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/212380.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

主流MQ [Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ]

主流MQ [Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ] 一,MQ对比图 下面是 Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ 的更详细和专业的对比: 特性/功能KafkaRabbitMQZeroMQRocketMQActiveMQ语言JavaErlangCJavaJava协议自有协议AMQP自有协…

算法工程师-机器学习面试题总结(6)

目录 1.Bagging的思想是什么?它是降低偏差还是方差,为什么? 2.可否将RF的基分类模型由决策树改成线性模型或者knn?为什么? 3.GBDT梯度提升和梯度下降有什么区别和联系? 4.如何理解Boosting和Bagging&am…

基于ssm高校实验室管理系统的设计与实现论文

摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对高校实验室信息管理混乱,出错率高,信息安全性…

散列卡片悬停变为整齐列表

效果展示 CSS 知识点 transform 属性运用 页面整体布局 <ul><li><div class"box"><img src"./user1.jpg" /><div class"content"><h4>Hamidah</h4><p>commented on your photo.<br />…

Excel 数据处理记录

20231203 excel中的字符串以符号间隔开了&#xff0c;如何将其中的字符串挑出&#xff0c;分别放到其他单元列&#xff1a; 在Excel中打开你的表格&#xff0c;选中包含以符号间隔的字符串的单元格。在顶部菜单中&#xff0c;找到“数据”选项&#xff0c;并选择“分列”。在…

电脑主板支持的cpu型号汇总

一、如何选择不同的主板和对应CPU 1、看针脚&#xff1a;网上有相应的参数&#xff0c;只要CPU能安装到主板中&#xff0c;基本就兼容&#xff0c;这主要取决CPU插槽和主板插槽十分一致。 2、看型号&#xff1a;桌面处理器&#xff0c;只有Intel和AMD两大平台&#xff0c;他们对…

dlib是什么?

dlib C Libraryhttp://dlib.net/ dlib是什么&#xff1f; Dlib is a modern C toolkit containing machine learning algorithms and tools for creating complex software in C to solve real world problems. It is used in both industry and academia in a wide range of…

基于SSM的高校共享单车管理系统的设计与实现论文

摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所以对于信息的宣传和管理就很关键。因此高校单车租赁信…

二百一十、Hive——Flume采集的JSON数据文件写入Hive的ODS层表后字段的数据残缺

一、目的 在用Flume把Kafka的数据采集写入Hive的ODS层表的HDFS文件路径后&#xff0c;发现HDFS文件中没问题&#xff0c;但是ODS层表中字段的数据却有问题&#xff0c;字段中的JSON数据不全 二、Hive处理JSON数据方式 &#xff08;一&#xff09;将Flume采集Kafka的JSON数据…

【华为OD题库-075】拼接URL-Java

题目 题目描述: 给定一个url前缀和url后缀,通过,分割。需要将其连接为一个完整的url。 如果前缀结尾和后缀开头都没有/&#xff0c;需要自动补上/连接符 如果前缀结尾和后缀开头都为/&#xff0c;需要自动去重 约束:不用考虑前后缀URL不合法情况 输入描述: url前缀(一个长度小于…

49.Go避免大量并发访问DB、避免缓存击穿、缓存穿透、缓存雪崩以及使用延迟双删保证数据一致性

文章目录 一、在高并发下&#xff0c;如何避免大量请求直接访问数据库&#xff1f;二、避免缓存击穿二、避免缓存穿透三、避免缓存雪崩四、延迟双删保证数据一致性五、在使用 Go 的 time.AfterFunc 函数时&#xff0c;如果删除缓存操作失败怎么办&#xff1f; MySQL和 Redis是…

vue自定义指令实现按钮只允许点击一次

vue自定义指令实现按钮只允许点击一次 vue自定义指令实现按钮只允许点击一次 这个例子中创建了一个名为 click-once 的自定义指令&#xff0c;通过 bind 钩子函数给元素绑定了一个点击事件&#xff0c;并且利用一个变量 clicked 控制了按钮只能点击一次的行为。在点击后会执行传…

【ITK库学习】使用itk库进行图像滤波ImageFilter:Voting滤波器

目录 1、itkVotingBinaryImageFilter2、itkVotingBinaryHoleFillingImageFilter 洞穴充填滤波器3、itkVotingBinaryIterativeHoleFillingImageFilter4、itkLabelVotingImageFilter 1、itkVotingBinaryImageFilter 该类是一个基类&#xff0c;用于根据前景和背景像素的邻域投票…

【数据结构实践课设】新生报道注册管理信息系统

目录 1.主要框架 2.写入文件 3.读取文件 4.注册学生信息 5.增加学生信息 6.删除学生信息 7.按姓名查询 8.按班级查询 9.按专业查询 10.打印学生信息 11.完整代码 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所…

git commit语义规范

合理的应当如 [header]fix(core): remove ....(#33949) These .... RP Close #33949(可选) Header可选 代码类 新增功能(feat) 修复缺陷(fix) 改进性能(perf) 格式化代码(style) 优化代码(refactor) 非代码类 更新测试代码(test) 部署相关变更(ci) 文档类变更(do…

【Linux】第二十七站:内存管理与文件页缓冲区

文章目录 一、物理内存和磁盘交换数据的最小单位二、操作系统如何管理内存三、文件的页缓冲区四、基数树or基数&#xff08;字典树&#xff09;五、总结 一、物理内存和磁盘交换数据的最小单位 我们知道系统当中除了进程管理、文件管理以外&#xff0c;还有内存管理 内存的本质…

思科最新版Cisco Packet Tracer 8.2.1安装

思科最新版Cisco Packet Tracer 8.2.1安装 一. 注册并登录CISCO账号二. 下载 Cisco Packet Tracer 8.2.1三. 安装四. 汉化五. cisco packet tracer教学文档六. 正常使用图 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新…

[香橙派]orange pi zero 3 烧录Ubuntu系统镜像——无需HDMI数据线安装

一、前言 本文我们将介绍如何使用orange pi zero 3 安装Ubuntu系统&#xff0c;本文相关步骤均参考自开发手册。 二、实施准备 根据开发手册中所提到的&#xff0c;我们应该拥有如下配件: 1.orange pi zero 3 开发板 2.TF 卡——最小 8GB 容量的 class10 级或以上的高速闪迪卡。…

鸿蒙OS应用开发之语句

在程序开发中&#xff0c;已经有上面的运算符和数据类型了&#xff0c;可以满足了大部的需求&#xff0c;但是这些程序还是比较简单的计算和逻辑运算&#xff0c;如果需要复杂的计算和逻辑处理&#xff0c;就需要采用复杂逻辑程序块来处理了&#xff0c;也就是复杂条件语句才能…

nn.Sequential|nn.ModuleDict|nn.ModuleList 详解

文章目录 1、简介2、三者之间的区别3、如何让nn.ModuleList 和nn.ModuleDict实现推理3.1 方案1: 实现forward函数3.2 方案2: 将nn.ModuleList 和nn.ModuleDict转换为nn.Sequential4、nn.ModuleDict、nn.ModuleList 的区别5、nn.ModuleList 、 nn.ModuleDict 与 Python list、…