c# - 如何创建分层 CancellationTokenSource?
问题描述
在我们的项目中,我们决定借助CancellationToken
.
由于项目中作品的结构,我需要一个分层的取消机制。通过分层,我的意思是父源取消会导致所有子源被递归取消,但子源取消不会传播到父源。
.NET 中是否有现成可用的选项?如果不是,我不确定向父代币注册代表是否足够,或者应该给予进一步考虑。
解决方案
是的,此功能开箱即用。查看CancellationTokenSource.CreateLinkedTokenSource
方法。
当任何源令牌处于取消状态时,创建一个
CancellationTokenSource
将处于取消状态的。
例子:
using var parentCts = new CancellationTokenSource();
using var childrenCts = CancellationTokenSource
.CreateLinkedTokenSource(parentCts.Token);
parentCts.Cancel(); // Cancel the children too
childrenCts.Cancel(); // Doesn't affect the parent
推荐阅读
- python - 如何有效地删除仅包含 0 作为值的前导行?
- angular - 通过函数进行角度动态属性绑定
- javascript - 我可以将 web worker 用于 ui 组件吗?
- jenkins - Jenkins 似乎停止在 Ubuntu 16.04.4 上监听端口 8080
- javascript - FullCalendar 点击时自动填充事件
- c - 这是打开 .txt 文件的正确方法吗
- yacc - 这个 yacc 语法有什么问题?
- javascript - Firebase 推送通知不显示为弹出消息 - c#
- azure - 获取 Microsoft.Azure.CognitiveServices.Language.LUIS.Runtime.Models.APIErrorException:操作返回无效状态代码“禁止”
- ios - Xamarin.iOS 属性绑定问题与 { get; } vs { 得到;放; }