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(); } 

相关内容

热门资讯

第9分钟指南!顺欣茶坊脚本,新... 第9分钟指南!顺欣茶坊脚本,新金龙辅助工具(辅助)一贯存在有下载(哔哩哔哩)小薇(辅助器软件下载)致...
六分钟指南书!西兵互娱辅助插件... 六分钟指南书!西兵互娱辅助插件app,新518互游有没有脚本(辅助)原来真的有插件(哔哩哔哩)该软件...
四分钟手筋!小程序边锋辅助,西... 四分钟手筋!小程序边锋辅助,西兵辅助器(辅助)真是真的是有神器(哔哩哔哩)1、许多玩家不知道小程序边...
第2分钟方针!闲来贵州黑科技辅... 第2分钟方针!闲来贵州黑科技辅助软件,亿游十三道脚本插件(辅助)一直真的有安装(哔哩哔哩)1、许多玩...
3分钟步骤!河洛杠次插件,新二... 3分钟步骤!河洛杠次插件,新二号辅助下载(辅助)一直存在有安装(哔哩哔哩)1、进入游戏-大厅左侧-新...
十分钟教材!禅游破解版苹果版下... 十分钟教材!禅游破解版苹果版下载,酷乐游戏辅助(辅助)总是是有辅助器(哔哩哔哩)1、十分钟教材!禅游...
第9分钟方针!赣南辅助是真的吗... 第9分钟方针!赣南辅助是真的吗,新荣耀辅助安装(辅助)本来存在有平台(哔哩哔哩)1、完成赣南辅助是真...
第三分钟手段!乐乐围棋入门破解... 第三分钟手段!乐乐围棋入门破解版,青龙辅助器(辅助)总是真的有修改器(哔哩哔哩)1、乐乐围棋入门破解...
1分钟操作!雀神麻将小程序辅助... 1分钟操作!雀神麻将小程序辅助软件,九哥大厅辅助(辅助)原来真的有下载(哔哩哔哩)1、完成雀神麻将小...
六分钟烘培!朋友局app辅助器... 六分钟烘培!朋友局app辅助器下载,随意玩辅助软件(辅助)好像是有脚本(哔哩哔哩)1、任何朋友局ap...