如何高效创建已取消状态的CancellationToken?
如何直接获取已处于取消状态的CancellationToken?
在单元测试的一个罕见场景中,我需要生成已处于取消状态的CancellationToken,目前是这样实现的:
CancellationTokenSource cts = new CancellationTokenSource(); cts.Cancel(); Send(cts.Token);
我们知道CancellationToken.None用于表示不可取消的请求,那有没有类似CancellationToken.Cancelled的现成对象,可以不用先创建CancellationTokenSource再取消?
没有现成的CancellationToken.Cancelled静态属性,但你可以直接通过**CancellationToken的构造函数**快速创建已取消的令牌:
Send(new CancellationToken(true));
这个构造函数接受一个bool参数,传入true就会创建一个已处于取消状态的CancellationToken;对应地,CancellationToken.None本质上就是new CancellationToken(false),也就是未取消状态的令牌。
这种写法比创建CancellationTokenSource再取消的方式更简洁,完全满足需求。
内容的提问来源于stack exchange,提问作者user22155685
相关产品推荐
相关产品推荐

