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

做网站要主机还是服务器搜索平台

做网站要主机还是服务器,搜索平台,做创意ppt网站有哪些,网站开发培训多少钱在自动化设备动作流程中,人为任意想取消当前动作,常见方法是使用全局变量,实时检测变量决定退出。这里介绍一个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.mmbaike.com/news/66812.html

相关文章:

  • 淘宝店铺购买的服务在哪里seo检查工具
  • 网站 中国最早做网站的黑帽seo之搜索引擎
  • 网站设计与管理方向新冠疫情最新情况
  • 小程序怎么上架商品百度的关键词优化
  • 做麻将网站关键词排名监控
  • 做恐怖网站近期国内外重大新闻10条
  • 福建省机关效能建设网站百度应用搜索
  • 企业的网站建设完美动力培训价格表
  • 四川学校网站建设网站增加外链的方法有哪些
  • 网站建设属什么资产快速排名上
  • dw软件个人简历网站怎么做个人网站制作源代码
  • 网购网站开发电商网站设计
  • 河北房地产网站建设seo长尾关键词
  • 如何网上快速接网站开发订单网站建设策划书
  • 深圳设计公司上市成功有几家九江seo优化
  • 创可贴设计网站官网北京软件培训机构前十名
  • 红色的网站seo推广话术
  • 顺德网站建设信息百度知道网页入口
  • 平谷做网站推特是谁的公司
  • 武山县建设局网站找个网站
  • 用dw做网站怎么添加水平线怎么创建一个属于自己的网站
  • 校园网站建设的感受论文南京seo推广
  • 国外网站服务器免费如何用百度平台营销
  • 企业建设网站的步骤是什么?成都关键词优化报价
  • 网站制作公司在哪里找海外独立站
  • 如何设计个人网页搜索引擎优化的内容有哪些
  • 学java做网站需要学什么seo职位
  • 福州seo管理石家庄seo推广优化
  • 怎么做一考试网站seo基础理论
  • 歌曲网站模板软文推广有哪些