为什么没有在BlockingCollection的构造函数中传入BlockingCollection的CancellationToken?
必须将令牌传递给Take和Add方法,原因是什么?
发布于 2010-11-18 21:17:22
为什么使用ctor会更好?
我可以想象使用CancellationToken作为Take()而不是Add()。
或者使用不同的令牌。
发布于 2013-03-28 08:49:45
CancellationToken用于支持“取消操作”。这是比具有表示“活动/禁用”的布尔值字段的对象实例更一般的概念。它支持并发、对象重用和其他有趣的场景。
因此,操作是Add()和Take(),由于集合为空或满,它们中的每一个都可能是长时间运行的。如果调用者想要取消一个长时间运行的方法调用,那么他们会传入一个令牌,并在需要时发出信号通知它。
https://stackoverflow.com/questions/4215054
复制相似问题