C# Task 暂停与取消

前言:

①取消task任务之CancellationTokenSource的用法;

②task的线程管控方法Task..Wait(time),Task.WaitAll(), Task.WaitAny(),task.ContinueWith.

1.声明参数

 CancellationTokenSource tokenSource = new CancellationTokenSource();CancellationToken token = tokenSource.Token;ManualResetEvent resetEvent = new ManualResetEvent(true);

2.定义Task

Task task = new Task(async () => {while (true) {  if (token.IsCancellationRequested) {return;}// 初始化为true时执行WaitOne不阻塞resetEvent.WaitOne();// Doing something.......// 模拟等待100msawait Task.Delay(100);}}, token);task.Start();

3.暂停Task

resetEvent.Reset();

4.继续Task

resetEvent.Set();

5.取消Task

tokenSource.Cancel();

实例:

 #region TASK用法举例static void TasKTest(){//带返回值的taskTask<String> mytask = Task.Run(async () =>{await Task.Delay(5000);return "老铁666";}, cancellationToken.Token);//cancellationToken.Cancel();while (!mytask.Wait(100)) //在指定时间执行完成就返回true{Console.Write(".");}Console.WriteLine(mytask.Result);//task任务取消,所以获取task.Result会报错Task taskFactory = Task.Factory.StartNew(() =>{Thread.Sleep(1000);Console.WriteLine("perfect!");});Console.WriteLine(taskFactory.Status);taskFactory.Wait();//taskFactory任务完成才往下执行Task.WaitAll(mytask, taskFactory);//所有任务完成再往下执行Task.WaitAny(mytask, taskFactory);//任一任务完成就往下执行Console.WriteLine(taskFactory.Status);Task taskTest = taskFactory.ContinueWith(DoOnSecond);//ContinueWith用法举例}static void DoOnSecond(Task t){Console.WriteLine("task {0} finished", t.Id);Console.WriteLine("this task id {0}", Task.CurrentId);Console.WriteLine("do some cleanup");}#endregion

进技术交流群的,加小编微信zls20210502,切记备注:进群!

历史经典文章回顾:以下都是以往阅读量好,比较经典的篇章!(下面是超链接,点击就可以过去)

C# 看懂这100+行代码,你就真正入门了(经典)

C# WPF项目实战(经典)

C# NOPI 项目实战(经典)(可下载项目源码)WPF【框架学习】MVVM初探(经典)

C# action,delegate,func的用法和区别

C#接口的作用(经典)

C# 三种方式实现Socket数据接收(经典)

C#实例(经典):四路光电开关&激光雷达数据采集和波形图绘制

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

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

相关文章

通过R,让你的数据分析更简便!

R作为一种统计分析软件&#xff0c;广泛应用于生物、医学、电商、新闻等数据相关行业&#xff0c;是目前主流数据应用软件之一。为了更好地帮助大家了解并快速入门R语言&#xff0c;现超级数学建模携手柯老师以R语言为基础&#xff0c;向大家隆重推出《R语言基础》系列课。柯老…

r语言用行名称提取数据框信息显示na_学会这些R语言技巧至少可以节省半年时间...

ubuntu备忘定期清空回收站扩增子数据牢记r ubuntu 相关技巧和备忘待解决问题1&#xff1a;phyloseq有一篇文章案例使用输入和输出文件相同的文件名&#xff0c;无法执行待解决问题2&#xff1a;待解决问题3&#xff1a;样品分组文件太长了&#xff0c;导致提取出来数据存在NA值…

hibernate.cfg.xml的一些事

Hibernate连接数据库的配置文件书写一般有两种方式&#xff1a; 第一种方式&#xff1a;使用开发环境直接连接数据库最后生成hibernate.cfg.xml文件 第二种方式&#xff1a;使用已有的模版直接拷贝的工作的目录下&#xff0c;通过相应的修改获得需要的连接数据库的配置文件&…

NET问答: 如何将 DataTable 转成 IEnumerableT ?

咨询区 Roddy Balkan&#xff1a;我想将一个外域系统中传过来的 DataTable 转成 IEnumerable&#xff0c;下面的代码在 ASP.NET 4.6.1 中是没有问题的。public static IEnumerable<UserAssignmentDto> StaffAssignmentsUsingStoredProcedure(System.Data.DataTable dataT…

columnproperty server sql_获取SQL Server表字段的各种属性

SELECT(CASE WHEN a.colorder1 THEN d.name ELSE END) N表名,a.colorder N字段序号,a.name N字段名,(CASE WHEN COLUMNPROPERTY( a.id,a.name,IsIdentity)1 THEN √ELSE END) N标识,(CASE WHEN (SELECT COUNT(*)FROM sysobjectsWHERE (name in(SELECT nameFROM sysindexesWHE…

配置静态路由下一跳为本地出战接口和IP地址的区别

配置静态路由下一跳为本地出战接口和IP地址的区别 在配置静态路由时&#xff0c;下一跳可以使用下一路由器的IP地址&#xff0c;也可以使用本路由器的出站接口。在点对点的网络中&#xff0c;两者可能没有什么差别&#xff0c;但在以太网中或者NBMA网络类型&#xff0c;两者有很…

使用 Source Generator 自动生成 WEB API

使用 Source Generator 自动生成 WEB APIIntro上次我们介绍了使用 Source Generator 的应用&#xff0c;有小伙伴留言说想要自动生成一套 ABP 相关的东西&#xff0c;我对 ABP 不怎么熟悉&#xff0c;所以写了一个简单版的雏形&#xff0c;可以根据自定义的模板去动态生成&…

Excel中的散点图这么强大,学习了!

全世界只有3.14 % 的人关注了数据与算法之美平时见得最多的也许是柱形图了&#xff0c;但我个人最喜欢的却是散点图。在讲散点图之前&#xff0c;我先阐述一个不太严谨的个人观点。我认为&#xff0c;所有的数据图表都可以分为两类&#xff0c;一类是偏重于展示&#xff0c;一类…

mysql修改字段的顺序_Mysql中如何修改字段的排列顺序?

创建数据表的数据,字段在表中的位置已经确定了。但要修改字段在表中的排列位置,则需要使用ALTER TABLE语句来处理。在MySQL中,修改字段排列位置的基本语法格式如下: ALTER TABLE MODLFY 字段名1 数据类型 FIRST|AFTER 字段名2 在上述格式中,“字段名1”指的是修改位置的字段…

Oracle之PLSQL总结

基本数据类型变量 1. 基本数据类型 Number 数字型 Int 整数型 Pls_integer 整数型&#xff0c;产生溢出时出现错误 Binary_integer 整数型&#xff0c;表示带符号的整数 Char 定长字符型&#xff0c;最大255个字符 Varchar2 变长字符型&#xff0c;最大200…

趣读:程序员泪流满面的20个瞬间!

全世界只有3.14 % 的人关注了数据与算法之美【一】老板突然说&#xff0c;想跟你聊一聊你的年终review结果【二】记一次难忘的debug经历【三】——昨晚又加班了吧&#xff1f;——你怎么知道的&#xff1f;【四】老板定下了春节期间on call的人!【五】产品crash了&#xff0c;最…

记一次 .NET 某医院HIS系统 CPU爆高分析

一&#xff1a;背景 1. 讲故事前几天有位朋友加 wx 抱怨他的程序在高峰期总是莫名其妙的cpu爆高&#xff0c;求助如何分析&#xff1f;和这位朋友沟通下来&#xff0c;据说这问题困扰了他们几年????&#xff0c;还请了微软的工程师过来解决&#xff0c;无疾而终&#xff0c…

mysql判断表存在的sql语句_SQL 语句判断已知表是否存在_MySQL

问:怎样用SQL语句来判断已知表是否存在?答:具体解决方法如下:注释:以下代码为通常的引用Dao做的一模块以下为引用的内容&#xff1a;Function fExistTable(strTableName As String) As IntegerDim db As DatabaseDim i As IntegerSet db DBEngine.Workspaces(0).Databases(0)…

全球六大顶级域名动态:7月上旬.COM新增18.4万个

中国IDC评述网07月17日报道&#xff1a;据域名统计机构Whois Source公布的最新数据显示&#xff0c;截至7月15日&#xff0c;全球六大顶级域名&#xff08;.COM、.NET、.ORG、.INFO和.US&#xff09;的域名总量达到了 141,259,651个。其中&#xff0c;.COM域名注册量达104,165,…

如何用大数据找到男/女朋友?

全世界只有3.14 % 的人关注了数据与算法之美小柯25岁&#xff0c;单身男&#xff0c;热衷大数据&#xff0c;并决定认真钻研&#xff0c;用数据分析来实现自己的“脱单计划”。找女友第一步&#xff1a;整理思路找女友第二步&#xff1a;界定问题1、为什么要找女朋友&#xff0…

.NET5 开发手机提词应用,基于内嵌Web服务器及PowerPoint自动化

项目说明我使用电脑录制视频教程的时候&#xff0c;会展示PPT给观众&#xff0c;同时也有一些提示性的文字给我自己看。这就类似于很多电视节目录制现场的“提词器”。节目录制现场的提词器在PC环境下&#xff0c;PowerPoint也具有提词器功能&#xff0c;在编辑PPT的时候&#…

[Linux程序设计][调试][ElectricFence]

gcc –o test test.c –lefence 提前发现动态内存的错误 转载于:https://blog.51cto.com/honglei/934379

应对「高并发」的思路

大家好&#xff0c;我是Z哥。最近正好在编写一套新的面试题&#xff0c;其中有一道是与高并发相关的。出题的目的是想了解一下候选人面对大流量场景下的优化思路。在出这道题的过程中&#xff0c;我自己也梳理了一下自己对这个问题的思路。然后之所以想在这里分享出来&#xff…

薄如冈本,37°恒温发热超薄保暖内衣,既要风度也要温度

问君能有几多愁恰似没穿秋裤遇寒流俗话说的好你在北方的暖气里穿着短袖我在南方的艳阳里瑟瑟发抖为了暖和一点大家都穿得里三层外三层的什么大衣棉袄厚外套都搬出来了但谁都不愿意在冬天穿的像个200斤的胖子好吗&#xff01;&#xff1f;可是为了风度连狗命都不要了吗&#xff…

mysql time类型转换_mysql8 参考手册--Date日期和Time时间类型之间的转换

在某种程度上&#xff0c;您可以将值从一种时间类型转换为另一种时间类型。但是&#xff0c;价值可能会有所变化或信息丢失。在所有情况下&#xff0c;时间类型之间的转换都取决于结果类型的有效值范围。例如&#xff0c;尽管 DATE&#xff0c; DATETIME和 TIMESTAMP值都可以使…