Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有简单地返回BlockingCollection的方法_C#_Multithreading_Blockingcollection - Fatal编程技术网

C# 有没有简单地返回BlockingCollection的方法

C# 有没有简单地返回BlockingCollection的方法,c#,multithreading,blockingcollection,C#,Multithreading,Blockingcollection,您好,我正在尝试创建一个应用程序,它可以处理流数据。。。(所以没有结尾……完成……等等) 由于其性质,因为流式数据得到了大量的操作,我使用BlockingCollection,它非常有效… 我一直在关注这篇优秀的文章,我让所有的东西都正常工作……但让我困惑的是,我不能简单地从一个类返回BlockingCollection来提供输入 大概是这样的: class A { public BlockingCollection<SomeThing> getBlockingC() {

您好,我正在尝试创建一个应用程序,它可以处理流数据。。。(所以没有结尾……完成……等等)
由于其性质,因为流式数据得到了大量的操作,我使用BlockingCollection,它非常有效…
我一直在关注这篇优秀的文章,我让所有的东西都正常工作……但让我困惑的是,我不能简单地从一个类返回BlockingCollection来提供输入 大概是这样的:

class A
{
  public BlockingCollection<SomeThing> getBlockingC()
  {
  .......some code here ........
  return myBlockingCollection;
  }
}

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

因为我没有得到我正在寻找的解决方案,我只是仔细考虑了一下,得到了一个解决方案……你只是将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 *****

}
}
A类
{
私有静态BlockingCollection _ABlockingCollection=新建BlockingCollection();
公共封锁集合A_封锁集合
{
得到{
返回-锁定集合;
}
------向BlockingCollection添加元素的代码------
A_BlockingCollection.Add(ObjectsForStoring);
---------------------------------------------------
}
B类
{
公共图书馆B()
{
A product=新的A();
}
公共消费()
{
---使用阻塞集合的代码------
foreach(存储在A.A_BlockingCollection.GetConsumingEnumerable()中的var object)
****消耗*****
}
}

是的,你遗漏了一些东西。你可以在某个地方完美地创建一个
BlockingCollection的实例,返回它,然后在其他地方使用它。你有什么例外吗?我在整个互联网上搜索了一个实实在在的例子,展示了如何实现这一点……但什么都没有……只有我注意到的一篇帖子……所有的例子都是错的w操作在同一个类上,或者当blockingCollection完成添加元素时……但在流式处理情况下……您完全忘记了告诉我们出了什么问题。我的水晶球说,您不应该返回泛型对象,而应该返回
blockingCollection
。这不是问题……不是泛型的……blockingCollection可以是任何类型:String/Int/MyClass…随便什么…谢谢你指出…我会在我的问题中解决它
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 *****

}
}