给定:
-
BlockingCollection<T> coll
-
CancellationTokenSource cts
coll.GetConsumingEnumerable(cts.Token)
上有 10 个线程被阻止
所以cts.Cancel()
取消所有 10 个线程。
是否可以编写一个自定义取消 token 源,可以告诉它仅取消某些线程?所以:
cts.Cancel(5)
只会取消 5 个被阻止的线程。任意 5 个。
?
最佳答案
没有。您需要拥有多个不同的取消 token ,让每个使用者使用自己的 token ,并取消一定数量的 token 集合。
也就是说,您可以通过创建某种类型的取消 token 集合来封装大部分这种行为,该集合具有生成新 token 的方法和取消所发出的一定数量 token 的方法。
关于c# - 是否有可能有一个取消 token 源,仅取消一些服务员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25652124/