.NET Core的CancellationToken集成使用
- 它用于在执行长时间运行的操作时,通过发送取消请求来终止操作。
- CancellationToken可以与异步操作一起使用,以便在操作执行期间检查是否已请求取消。它提供了一种优雅的方式来处理取消操作,避免了长时间运行的操作无法中断的问题。
var httpContext = Cfg.HttpContextAccessor.HttpContext; await Task.Delay(5000, httpContext.RequestAborted); //当 httpContext.RequestAborted 监听到取消时,下面的Task.Run 方法就不会执行(httpContext.RequestAborted的状态变更只有 //在 Task.Run先前变更,任务里的方法才不会执行) try { // 创建一个 Task.Run 任务。 await Task.Run(async () => { await Task.Delay(5000); // 取消 CancellationTokenSource。 KK(Thread.CurrentThread.ManagedThreadId); // 执行一些操作。 }, httpContext.RequestAborted); } catch (Exception e) { } //针对自定义取消可以根据注册回调 / 或者 httpContext.RequestAborted.IsCancellationRequested 属性 //进行自定义控制操作 httpContext.RequestAborted.Register(() => { Console.WriteLine($"用户取消了操作:【{httpContext.TraceIdentifier}】,接口:[{httpContext.Request.Path}]"); //dd.Abort(); });
本文作者:蛋蛋十二月
本文链接:https://www.cnblogs.com/kkbk/p/17861495.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!