C# 组合CancellationTokenSource的使用
创始人
2024-11-15 19:35:28
0

前言

在异步编程中,经常需要使用CancellationToken来取消任务的执行。
但是通常情况下,一个耗时任务还需要有超时机制。那个如何让一个任务既可以超市自动取消也可以手动取消?

组合CancellationTokenSourced的使用

//创建两个cts(一个手动取消,一个超时取消) CancellationTokenSource cancellCts= new CancellationTokenSource(); CancellationTokenSource timeOutCts = new CancellationTokenSource(1000); //将两个cts组合 CancellationTokenSource compositeCts = CancellationTokenSource.CreateLinkedTokenSource(cancellCts.Token, timeOutCts.Token); try { 	//执行异步耗时任务 	await DoLongTimeTask(compositeCts.Token) } catch (OperationCanceledException) {     if (cancellCts.Token.IsCancellationRequested)     {        	//手动取消          throw new OperationCanceledException();     }     else if (timeOutCts.Token.IsCancellationRequested)     {     	//超时取消         throw new TimeoutException();     } } finally { 	cancellCts.Dispose();    timeOutCts.Dispose();    compositeCts.Dispose(); } 

相关内容

热门资讯

C语言笔记39 •数据结构--... 栈&队列-OJ1.给定一个只包括 '(',')','{',...
Stable Diffusio... 前言在2022年,人工智能创作内容(AIGC)成为了AI领...
el-ui 导航菜单重复点击报... 重复点击菜单报错 NavigationDuplicated: Avoided redundant n...
⌈ 传知代码 ⌋ 基于矩阵乘积... 💛前情提要💛本文是传知代码平台中的相关前沿知识与技术的分享~接下来我...
Qt项目——文本编辑器(功能模... 项目地址:GitHub - Outlier9/CatEditor: Cat文本编辑器-...
实战whisper第二天:直播... 直播语音实时转字幕:基于Whisper的实时直播语音转录或翻译是一项使用OpenAI的Whisper...
腾讯云HAI:人人都可无门槛A... 目录前言关于HAIHAI优势开启HAI使用清理资源体验心得结束语参考文献前言随着科技的不断进步和数据...
探索LLaMA模型:架构创新与... 引言在人工智能和自然语言处理领域,预训练语言模型的发展一直在引领着前沿科技的进步。Me...
AIGC工具:IPAdapte... ControlNet强调对生成过程的直接控制,如通过线条、边缘、形状等信息;而IPAdapter侧重...
基于Amazon SageMa... 序言:当谈到机器学习和人工智能的开发和部署时,Amazon SageMa...