当前位置: 首页 > news >正文

做网站难学吗软件开发工具软件

做网站难学吗,软件开发工具软件,浙江建设职业技术学院迎新网站,嘉兴网站排名优化报在自动化设备动作流程中,人为任意想取消当前动作,常见方法是使用全局变量,实时检测变量决定退出。这里介绍一个System.Threading空间下的 CancellationTokenSource类,他可以设置超时,设置信息等封装 基本使用超时和手…

在自动化设备动作流程中,人为任意想取消当前动作,常见方法是使用全局变量,实时检测变量决定退出。这里介绍一个System.Threading空间下的 CancellationTokenSource类,他可以设置超时,设置信息等封装

基本使用超时和手动设置退出

CancellationTokenSource:用于控制和生成CancellationToken

CancellationToken:取消令牌,可以注册取消回调等操作

1、先实例化CancellationTokenSource

2、注册取消回调

3、启动一个Task,模拟耗时操作

4.调用CancellationTokenSource的CancelAfter方法,表示多少毫秒后取消,也可使用Cancel方法立即取

5、IsCancellationRequested属性判断任务是否取消,没取消则一直输出i

抛出异常退出

以下举例 async await的异步使用,用到CancellationToken来取消任务,并手动设置抛异常传达信息

[HttpGet]public async Task<IActionResult> CancelDownLoad(CancellationToken cancellationToken){try{var _client = _httpClient.CreateClient("bigDownLoad");_client.DefaultRequestHeaders.Range = new RangeHeaderValue(0, 1024 * 1024 * 50);await Task.Delay(1000);if (!cancellationToken.IsCancellationRequested){var resp = await _client.GetAsync("http://du.cainiaoxt.cn/dd.php/windows_7_ultimate_x64_2023.iso",cancellationToken);if (resp.StatusCode != System.Net.HttpStatusCode.OK){string chunkFileFolder = @"D:\";string bigFileName = chunkFileFolder + @"\bigFile" + new Random().Next(0, 10);using (FileStream fs = new FileStream(bigFileName, FileMode.Create)){var respStream = await resp.Content.ReadAsStreamAsync();await respStream.CopyToAsync(fs);await respStream.FlushAsync();}}return Ok();}else{  // 设置抛异常退出cancellationToken.ThrowIfCancellationRequested();return BadRequest("下载任务取消!");}}catch (OperationCanceledException ex){Console.WriteLine("下载任务取消!"+ex.Message);return BadRequest("下载任务取消!");}}

关联退出

另外可以设置退出链接,多个关联全部退出

// See https://aka.ms/new-console-template for more information
CancellationTokenSource cts=new CancellationTokenSource();
cts.Token.Register(() => { Console.WriteLine("任务1已停止"); });CancellationTokenSource cts2 = new CancellationTokenSource();
cts2.Token.Register(() => { Console.WriteLine("任务2已停止"); });CancellationTokenSource cts3 = new CancellationTokenSource();
cts3.Token.Register(() => { Console.WriteLine("任务3已停止"); });
var linkTokenSource=CancellationTokenSource.CreateLinkedTokenSource(cts.Token, cts2.Token, cts3.Token);linkTokenSource.Token.Register(() => { Console.WriteLine("关联token取消"); });
Task.Run(() =>
{int i = 1;while (!cts.IsCancellationRequested){i++;Console.WriteLine("任务1:"+i);Task.Delay(500).Wait();}});Task.Run(() =>
{int i = 1;while (!cts2.IsCancellationRequested){i++;Console.WriteLine("任务2:"+i);Task.Delay(500).Wait();}});Task.Run(() =>
{int i = 1;while (!cts3.IsCancellationRequested){i++;Console.WriteLine("任务3:"+i);Task.Delay(500).Wait();}});Task.Run(() =>
{int i = 1;while (!linkTokenSource.IsCancellationRequested){i++;Console.WriteLine("关联token任务:" + i);Task.Delay(500).Wait();}});var key=Console.ReadKey();
if(key.Key==ConsoleKey.A)
{cts.Cancel();
}
Console.ReadLine();
http://www.yayakq.cn/news/985165/

相关文章:

  • 网站开发接外包网站建设维护公司资质
  • 如何才能建设出一个优秀网站宁波网络推广软件
  • 网站建设可实施性报告深圳福田地图
  • 百度地图 企业网站wordpress 批量发布器
  • 建设网站虚拟现实技术免费的短视频app大全
  • 烟台网站推广怎么避免网站开发后门
  • 个人网站可以做淘客关于asp.net的网站模板
  • 黄骅市做网站价格做设计常逛的网站
  • 厦门服装商城网站建设做网站去哪里
  • 烟台住房和城乡建设厅网站wordpress用户密码加密算法
  • 神华公司两学一做网站wordpress 返回主页
  • 网站建设的目的前端用什么框架做网站
  • 推广网站模板雅安市住房和城乡建设局网站
  • 抚顺外贸网站建设食药监局网站建设方案
  • 购物网站常用功能模块介绍目前最新的营销方式有哪些
  • 网站优化关键词排名自己怎么做wordpress主题 demo
  • 劳务派遣做网站有必要吗wordpress无法置顶
  • p2p网上贷款网站建设方案.docx电子制作diy
  • 网站开发 一般用什么语言网站怎样续费
  • 首页调用网站栏目id企业网站前端建设
  • 石家庄网站建设 河北供求网江苏威达建设有限公司网站
  • 成都手机网站建设报价表常州网红餐厅有哪些
  • 杭州电子网站建设方案沁阳企业自助建站
  • 网站超大文件上传大型网站制作需要多少钱
  • 外贸自建站模板手机网站一键分享
  • 网站推广建设加盟做网站需要懂什么技术
  • 怎么做pp网站wordpress书画主题
  • 资阳住房和城乡建设厅网站佛山公司建网站
  • 资阳网站优化如何做网站诊断
  • 网站中国风模板做一个公司网站流程 由ui设计