首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在基于TryPeek的BlockingCollection上进行ConcurrentStack

问如何在基于TryPeek的BlockingCollection上进行ConcurrentStack
EN

Stack Overflow用户
提问于 2014-05-02 02:23:33
回答 1查看 386关注 0票数 2

我有一个基于BlockingCollection的ConcurrentStack

Dim stackBase As New ConcurrentStack(Of MyObject) Dim myStack = New BlockingCollection(Of MyObject)(stackBase)

在我的一个生产者中,我想在添加一个新项目之前检查阻塞集合中的顶部项。据我所知,在此期间,这件物品可能会被消费者拿走。在这种情况下,这不是一个问题,因为我只是试图避免掩埋某些对象。

ConcurrentStack具有能够完美工作的TryPeek,但我没有访问stackBase对象的权限。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-02 02:47:39

您应该公开访问并发堆栈和阻塞集合的服务,从而公开正在寻找的行为。这样,您也可以在测试时模拟行为。

代码语言:javascript
复制
interface IWhateverYourCollectionService {
   //TryPeak();
   //Any other methods that make sense for what your doing.
}

通过这种方式,您可以将这两个对象存储在服务中,或者从工厂抓取这两个对象,并通过服务公开适当的行为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23419795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档