一.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())

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

被折叠的 条评论
为什么被折叠?



