2017-10-09 43 views
2

你好,我想创建一个应用程序,与流数据...(所以没有Ending..Complete ....等)
由于其本质,因为流数据得到了很多操作,我使用BlockingCollection,它的工作原理非常棒...
我跟随了优秀的帖子here关于SO,我拥有了所有的工作,因为他们应该....但令我感到困惑的是,我不能简单只是从一个类返回BlockingCollection养活输入 事情是这样的:有没有办法简单地返回一个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

是的你缺少的东西。您可以在某个地方完美地创建一个'BlockingCollection '的实例,并将其返回并在其他地方使用。你是否遇到异常? – Maarten

+0

我已经搜索了整个互联网上的一个坚实的例子,显示了如何实现这个......但没有......只有一个帖子我指出......所有的例子显示操作在同一类或当blockingCollection已经完成添加元素...但不是在流媒体情况下...... – John

+1

你完全忘记告诉我们出了什么问题。我的水晶球说你不应该返回一个通用对象,而是'BlockingCollection '。 –

回答

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 ***** 

} 
} 
相关问题