.Net6.0系列-4.Net 6及以上异步编程Cancellation以及WhenAll/WhenAnyToken详解(三)

文章详细介绍了CancellationToken在异步操作中的使用,包括注册回调、检查取消请求和设置超时。同时展示了在Web开发中如何利用CancellationToken处理用户取消请求,以优化服务器资源。此外,还讲解了Task类的WhenAll和WhenAny方法,用于控制多个任务的并发执行。

一.CancellationToken结构体使用详解
包含的属性:
None:空
Register(Action callback):注册/取消监听
ThrowIfCancellationRequested():如果任务被取消,就抛出异常
CancelAfter():设置等待多长时间以后超时,单位毫秒
Cancel():直接发出退出信息
通过 CancellationToken Token 传递信息
如果异步方法存在CancellationToken参数的话可以通过传递 CancellationToken来实现
举例:var resp=await client.GetAsync(url,cancellationToke)
这种方式也是通过抛出异常来退出异步执行的

//这个例子展示的是通过手动捕获退出信号,然后退出,如果不进行手动捕获取消信号程序是不会退出的
static async Task Main(string[] args)
{
   
   
	CancellationTokenSource cts=new CancellationTokenSource();
	cts.CancelAfter(3000);
	CancellationToken cToken=cts.Token;
	await DownloadAsync("https://www.baidu.com",200,cToken);
}

static async Task DownloadAsync(string url,int Times,CancellationToken cancellationToken)
{
   
   
	using(HttpClient client=new HttpClient())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值