[英]When can BlockingCollection<T> TryTake() return false?
[英]Is there a way to simply return a BlockingCollection
您好,我正在尝试创建一个适用于流数据的应用程序...(所以没有Ending..Complete .... etc)
由于其性质,因为流式数据得到了很多操纵,所以我使用BlockingCollection,它的效果非常好...
我在这里关注了SO上的精彩文章,并且一切都能正常进行....但是令我感到困惑的是,我不能简单地从一个类中返回BlockingCollection来提供输入,就像这样:
class A
{
public BlockingCollection<SomeThing> getBlockingC()
{
.......some code here ........
return myBlockingCollection;
}
}
而在classB上
class B
{
private void consume()
{
A produce = new A();
var ToConsume = produce.getBlockingC();
}
可能我缺少了一些东西,但是我可以对此进行一些澄清,这将是最有用的
好吧,因为我没有解决方案,所以我一直在考虑,然后才找到解决方案...您只是将BlockingCollection实现为一个属性
class A
{
private static BlockingCollection<> _ABlockingCollection= new BlockingCollection<>();
public BlockingCollection<> A_BlockingCollection
{
get {
return _ABlockingCollection;
}
------ Code that Adds elements to the BlockingCollection ------
A_BlockingCollection.Add(ObjectsForStoring);
---------------------------------------------------
}
class B
{
public B()
{
A produce = new A();
}
public void Consume()
{
--- Code that consumes a Blocking Collection ------
foreach (var ObjectStored in A.A_BlockingCollection.GetConsumingEnumerable())
**** Consume *****
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.