有没有办法简单地返回一个BlockingCollection

时间:2017-10-09 10:38:26

标签: c# multithreading blockingcollection

您好我正在尝试创建一个使用流数据的应用程序...(所以没有Ending..Complete ....等)
由于它的性质,因为流数据得到了大量的操作,我使用BlockingCollection,这很有效... ... 我已经按照优秀的帖子here进行了操作,我的一切都按照他们应该的方式进行....但令我感到困惑的是,我不能让一些简单地从一个人那里返回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();
}

可能我错过了一些东西,但我可以得到一些澄清,这将是最有帮助的

1 个答案:

答案 0 :(得分:0)

好吧,因为我没有得到解决方案,我正在寻求我只是想过来并得到一个解决方案......你只是将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 *****

}
}