首页 > 编程语言 >C#方法执行超时退出

C#方法执行超时退出

时间:2023-06-28 09:02:58浏览次数:22  
标签:Task C# await static WatchTsk 退出 async 超时 public

     [HttpGet]
        public async Task<string> TestUU()
        {
            ParentTsk().Wait();
            Console.WriteLine("Hello World!");
            return "ok";
        }
     public async static Task ParentTsk()
        {
            CancellationTokenSource cts = new CancellationTokenSource();
            cts.CancelAfter(20);
            Task<string> workTsk = Task.Run(async () => await WorkTsk());
            Task<string> watchTsk = Task.Run(async () => await WatchTsk(cts.Token));
            Task<string>[] tskArray = new Task<string>[] { watchTsk, workTsk };

            var rsltTsk = await Task.WhenAny(tskArray);
            Console.WriteLine($"执行结果{rsltTsk.Result}");

        }
     public async static Task<string> WorkTsk()
        {

            string fileName = @"d:\tstFile.txt";
            List<int> lstINt = Enumerable.Range(0, 5000).ToList();
            foreach (var item in lstINt)
            {
                await System.IO.File.AppendAllTextAsync(fileName, $"{item}|");
            }

            return "it is WorkTsk";
        }

        public async static Task<string> WatchTsk(CancellationToken token)
        {
            while (!token.IsCancellationRequested)
            {
                await Task.Delay(10);
            }
            return "it is WatchTsk";
        }

方案二:父子线程

 

标签:Task,C#,await,static,WatchTsk,退出,async,超时,public
From: https://www.cnblogs.com/OneSeting/p/17510430.html

相关文章

  • SpringBoot接入Chat-GPT3
    创建一个APIKeyAPIKey创建网址:https://platform.openai.com/account/api-keys先登录OpenAI账号登陆后创建一个APIKey起一个名字点击创建,生成一个APIKey,记录下这个APIKey后续会用。可以在官网看到剩余容量,账号默认会送$18刀的容量,超过需要购买。在SpringB......
  • ARC162E Strange Constraints
    题意给定长度为\(n\)的序列\(A\),求序列\(B\)的个数模\(998244353\),满足以下条件:值域\([1,n]\)。\(i\)的个数不超过\(A_i\)。\(B_i\)的个数不超过\(A_i\)。\(1\len\le500\)。题解发现按照某种顺序去构造是困难的,考虑倒过来,枚举出现次数。如果某个类出现次......
  • 【后端面经-Java】Synchronize和ReentrantLock区别
    目录1.概念介绍1.1线程安全锁1.2公平锁1.3响应中断/等待可中断2.区别2.1底层实现2.2锁的用法2.3锁的特点2.4性能比较2.5适用场景3.总结比较参考文献1.概念介绍1.1线程安全锁Synchronize(同步锁)和ReentrantLock(可重入锁)都是Java中的常用锁,都是用来保证线程安全的。......
  • 一文解开主流开源变更数据捕获技术之Flink CDC的入门使用
    @目录概述定义什么是CDC?CDC的分类特性应用场景支持数据源实战FlinkDataStream方式代码示例FlinkSQL方式代码示例概述定义flink-cdc-connectors官网https://github.com/ververica/flink-cdc-connectors源码release最新版本2.4.0flink-cdc-connectors文档地址https://v......
  • C++面试八股文:static_cast了解一下?
    C++面试八股文:static_cast了解一下?某日二师兄参加XXX科技公司的C++工程师开发岗位第20面:面试官:C++中支持哪些类型转换?二师兄:C++支持C风格的类型转换,并在C++11引入新的关键字规范了类型转换。二师兄:C++11引入四种新的类型转换,分别是static_cast、dynamic_cast、const_cast......
  • vue组件-使用Vue.component全局注册组件
    通过components注册的时私有子组件例如:在组件A的components节点下,注册了组件F。则组件F只能用在组件A中;不能被用在组件C中。注册全局组件在vue项目的main.js入口文件中,通过Vue.component()方法,可以注册全局组件。importVuefrom'vue'importAppfrom'./App.vue'//导......
  • R语言使用多元AR-GARCH模型衡量市场风险|附代码数据
    原文链接:http://tecdat.cn/?p=19118最近我们被客户要求撰写关于GARCH的研究报告,包括一些图形和统计输出。本文分析将用于制定管理客户和供应商关系的策略准则假设:贵公司拥有用于生产和分销聚戊二酸的设施,聚戊二酸是一种用于多个行业的化合物。制造和分销过程的投入包括各种......
  • chrome.runtime.onMessage.addListener sendResponse
    Ifmultiplepagesarelisteningfor onMessage events,onlythefirsttocall sendResponse() foraparticulareventwillsucceedinsendingtheresponse.Allotherresponsestothateventwillbeignored.如果多个页面正在监听onMessage事件,则只有第一个为特定......
  • SpringCloud学习-2
    SpringCloud学习第二天Eureka相关配置eureka:client:service-url:defaultZone:http://127.0.0.1:10087/eureka#设置eureka服务注册的地址register-with-eureka:false#不注册自己,自己不会显示在服务列表中registry-fetch-interval-seconds:30#......
  • React ISR 如何实现 - 最后的 Demo
    之前写了两个demo讲解了如何实现SSR和SSG,今天再写个demo说在ISR如何实现。什么是ISRISR即IncrementalStaticRegeneration增量静态再生,是指在SSG的前提下,可以在收到请求时判定页面是否需要刷新,如果需要则重新构建该页面,这样既拥有了静态页面的优势又可以避免页......