Csharp的CancellationToken 案例
using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Text; using System.Threading; using System.Threading.Tasks; // 命名空间 namespace pro01 { // 类 internal class Program { // main 方法 static async Task Main(string[] args) { Console.WriteLine("=======测试CancellationToken========="); CancellationTokenSource cts = new CancellationTokenSource(); cts.CancelAfter(3000); CancellationToken cToken = cts.Token; await DownLoadAsync("https://www.baidu.com", 200 , cToken); Console.ReadLine(); } /// <summary> /// 下载网页内容的函数 /// </summary> /// <param name="url"></param> /// <param name="n"></param> /// <param name="cancellationToken"></param> /// <returns></returns> static async Task DownLoadAsync(string url ,int n, CancellationToken cancellationToken) { using (HttpClient client = new HttpClient()) { for(int i = 0;i < n;i++) { //GetStringAsync 使用异步的方法 从 url 下载 内容 string html = await client.GetStringAsync(url); Console.WriteLine($"{DateTime.Now}:{html}"); // print container if (cancellationToken.IsCancellationRequested) // 监听是否取消了 { Console.WriteLine("请求取消了"); break; } } } } } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Blazor Hybrid适配到HarmonyOS系统
· 支付宝 IoT 设备入门宝典(下)设备经营篇
· 万字调研——AI生成内容检测
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库