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.hqwc.cn/news/264247.html

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

相关文章

Linux和Windows环境下如何使用gitee?

1. Linux 1.1 创建远程仓库 1.2 安装git sudo yum install -y git 1.3 克隆远程仓库到本地 git clone 地址 1.4 将文件添加到git的暂存区(git三板斧之add) git add 文件名 # 将指定文件添加到git的暂存区 git add . # 添加新文件和修改过的…

Java毕业设计—vue+SpringBoot图书借阅管理系统

图书管理系统 1. 开发目的 实现图书的智能化、信息化和简单化;实现图书信息的增加、删除、修改、查找、借阅、还书、收藏的显示操作及实时数据库的提交和更改和对普通用户的增、删、改、查;提高图书管理员工作信息报送及反馈的工作效率,减轻…

基于Solr的全文检索系统的实现与应用

文章目录 一、概念1、什么是Solr2、与Lucene的比较区别1)Lucene2)Solr 二、Solr的安装与配置1、Solr的下载2、Solr的文件夹结构3、运行环境4、Solr整合tomcat1)Solr Home与SolrCore2)整合步骤 5、Solr管理后台1)Dashbo…

Redis高效恢复策略:内存快照与AOF

第1章:Redis宕机恢复的重要性和挑战 大家好,我是小黑。今天咱们来聊聊Redis宕机后的恢复策略。想象一下,你的网站突然宕机了,所有的数据都飘了,这种情况下,快速恢复数据就显得尤为重要。Redis作为一个高性…

深入了解UDP协议:特点、应用场景及市面上常见软件案例

目录 引言 UDP的特点 UDP的应用场景 市面上使用UDP的软件案例 结论 引言 在计算机网络中,UDP(User Datagram Protocol)是一种面向无连接、无状态的传输层协议。与TCP相比,UDP具有独特的特点和适用场景。本文将深入探讨UDP协…

专业mac投屏软件AirServer v7.2.7 mac中文版

专业mac投屏软件AirServer v7.2.7 mac中文版是一款好用的投屏工具,它可以将您的Mac变成通用镜像接收器,允许您使用内置的AirPlay或基于Google Cast的屏幕投影功能镜像设备的显示器。您可以通过任何AirPlay或Google Cast兼容设备镜像或投射屏幕&#xff0…

YOLOV3 SPP 目标检测项目(针对xml或者yolo标注的自定义数据集)

1. 目标检测的两种标注形式 项目下载地址:YOLOV3 SPP网络对自定义数据集的目标检测(标注方式包括xml或者yolo格式) 目标检测边界框的表现形式有两种: YOLO(txt) : 第一个为类别,后面四个为边界框,x,y中心点坐标以及h,w的相对值 xml文件:类似于网页的标注文件,里面会…

Java数据结构《二叉排序树的插入删除和查找》(难度系数100)

一、前言: 这是怀化学院的:Java数据结构中的一道难度偏难(偏难理解)的一道编程题(此方法为博主自己研究与学习一名叫qing影的博主,问题基本解决,若有bug欢迎下方评论提出意见,我会第一时间改进代码,谢谢&am…

C++进阶篇8---智能指针

一、引言 为什么需要智能指针? 在上一篇异常中,关于内存释放,我们提到过一个问题---当我们申请资源之后,由于异常的执行,代码可能直接跳过资源的释放语句到达catch,从而造成内存的泄露,对于这种…

Kafka 最佳实践:构建可靠、高性能的分布式消息系统

Apache Kafka 是一个强大的分布式消息系统,被广泛应用于实时数据流处理和事件驱动架构。为了充分发挥 Kafka 的优势,需要遵循一些最佳实践,确保系统在高负载下稳定运行,数据可靠传递。本文将深入探讨 Kafka 的一些最佳实践&#x…

zxjy008- 项目集成Swagger

Swagger可以生成在线文档,还可以进行接口测试。 1、创建common模块(maven类型) 为了让所有的微服务子子模块都可以使用,可以在guli_parent父工程下面创建公共模块 1.1 在guli_parent父工程下面创建公共模块 配置: groupId:com…

[软件工具]文本去重含有重复的全部删除不是保留一个重复的方法

文本去重含有重复的全部删除不是保留一个重复的方法 第一步:首先打开软件 第二步:设置好保存目录后,将文件夹拖拽到列表,软件会自动识别导入txt 第三步:点击开始处理,即可完成任务 本软件支持批量处理&a…