首页 > 其他分享 >手动取消并释放Task资源

手动取消并释放Task资源

时间:2024-09-25 16:12:12浏览次数:9  
标签:cancellationToken 释放 Task Thread 取消 手动 cancellationTokenSource CancellationToken

用取消令牌取消Task

  • CancellationTokenSource:取消令牌
  • cancellationTokenSource?.Cancel();:其中表示判断cancellationTokenSource是否为null,如果不是null才取消,否则会造成找不到实例的异常
  • !cancellationToken.IsCancellationRequested后则不再进入While循环中,最后等待Thread.Sleep(2000);后Task资源被释放。
internal class Class1
{
    private CancellationTokenSource cancellationTokenSource;
    public void CancelTask()
    {
        cancellationTokenSource?.Cancel();
    }

    public void process()
    {
        cancellationTokenSource = new CancellationTokenSource();
        CancellationToken cancellationToken = cancellationTokenSource.Token;

        Task.Run(() =>
        {
            while (!cancellationToken.IsCancellationRequested)
            {
                Thread.Sleep(1000);
            }
            Thread.Sleep(2000);
        });
    }
}

标签:cancellationToken,释放,Task,Thread,取消,手动,cancellationTokenSource,CancellationToken
From: https://www.cnblogs.com/xiacuncun/p/18431570

相关文章

  • 9月24日课件之动手动脑
    在本次课件中有多个动手动脑作业,再次我逐一学习分析。一、首先是关于枚举的学习代码为,运行结果为。首先第一个运行结果显而易见的是false,第二个是因为枚举为类所以不是基本类型,在.isprimitive()中基本类型是返回true,类的话将会返回false。第三个是.valueof()会返回指定字符串......
  • ArgoWorkflow教程(五)---Workflow 的多种触发模式:手动、定时任务与事件触发A0
    合集-ArgoWorkflow(5)1.ArgoWorkflow教程(二)---快速构建流水线:Workflow&Template概念08-202.ArgoWorkflow教程(一)--DevOps另一选择?云原生CICD初体验08-063.ArgoWorkflow教程(三)---使用Artifacts实现步骤间文件共享08-29:milou加速器4.ArgoWorkflow教程(四)---Workfl......
  • 初步学习async/await,Task.GetAwaiter,Task.Result
    初步学习async/await,Task.GetAwaiter,Task.Result   网上关于async/await的知识有很多,看了很多但不如自己实践一遍来得快,所以这里记录下我的理解和大家学习下。  首先以最简单的同步方法来开始如下privatestaticvoidTest(){Console.Wr......
  • 中电金信:源启智能视觉分析系统~助力各行业破局升级,释放新质生产力
    作为人工智能与计算机视觉的交叉范畴,智能视觉模仿人类视觉机能,来对各种形式的视觉输入予以处理、理解以及决策。当下,智能视觉已然发展为应用广泛、市场覆盖面大且形式多元的产业方向,获得了国家政策的强力支持。数字化时代搭台,国家政策助力。大量传统企业迫切希望通过创新性的智能视......
  • 中电金信:源启智能视觉分析系统~助力各行业破局升级,释放新质生产力
    ​作为人工智能与计算机视觉的交叉范畴,智能视觉模仿人类视觉机能,来对各种形式的视觉输入予以处理、理解以及决策。当下,智能视觉已然发展为应用广泛、市场覆盖面大且形式多元的产业方向,获得了国家政策的强力支持。数字化时代搭台,国家政策助力。大量传统企业迫切希望通过创新性的智......
  • 手动下载和安装linux内核
    手动下载和安装内核是一个高级操作,需要从官方源或其他可信源手动下载和安装内核(1)选择合适的内核版本,可以访问官方操作系统网站或内核开发者网站,以获取可用的内核版本信息。(2)下载内核源代码:一旦确定了要安装的内核版本,可以通过以下方式之一获取内核源代码:官方操作系统网站提......
  • IntelliJ IDEA远程开发:释放本地设备,打破资源与环境的限制
    文章目录IntelliJIDEA远程开发:释放本地设备,打破资源与环境的限制应用场景远程开发优势如何实现远程开发进入远程开发`RemoteDevelopment`选择远程开发方式配置SSH代理转发通过`DevContainer`创建开发容器公众号,感谢!IntelliJIDEA远程开发:释放本地设备,打破资源与环境的限......
  • ArgoWorkflow教程(五)---Workflow 的多种触发模式:手动、定时任务与事件触发
    上一篇我们分析了argo-workflow中的archive,包括流水线GC、流水线归档、日志归档等功能。本篇主要分析Workflow中的几种触发方式,包括手动触发、定时触发、Event事件触发等。1.概述ArgoWorkflows的流水线有多种触发方式:手动触发:手动提交一个Workflow,就会触发一次构建......
  • Docker-compose 启动 mysql 报错 ERROR: for mysql Cannot start service mysql: fai
    报错详情root@hadoop107cmp]#docker-composeconfig-q[root@hadoop107cmp]#ll总用量70192-rw-r--r--.1rootroot718650749月2406:45docker-boot-0.0.1-SNAPSHOT.jar-rw-r--r--.1rootroot10149月2408:26docker-compose.yml-rw-r--r--.1rootro......
  • 手动下载和安装内核
    手动下载和安装内核是一个高级操作,需要从官方源或其他可信源手动下载和安装内核(1)选择合适的内核版本,可以访问官方操作系统网站或内核开发者网站,以获取可用的内核版本信息。(2)下载内核源代码:一旦确定了要安装的内核版本,可以通过以下方式之一获取内核源代码:官方操作系统网站提供......