2017-10-09 40 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 ***** 

} 
} 
相關問題