阻止集合的默认大小

时间:2016-11-10 11:11:21

标签: c# .net multithreading c#-4.0

我想知道Blocking Collection的默认大小。不知怎的,我的程序无法在阻塞集合中添加元素。

2 个答案:

答案 0 :(得分:2)

此代码中的默认大小:

var collection = new BlockingCollection<int>();
根据{{​​3}}:

没有上限

  

初始化BlockingCollection类的新实例,没有上限

(我的重点)

您还可以通过documentation属性了解此上限,在这种情况下,该属性将返回-1

.BoundedCapacity

显然,无限制的阻塞集合仍然可以添加到元素的数量上,因为最终底层数组或周围的内存变满,但它不是类本身强加的人为限制。 / p>

如果你观察到你不能将元素添加到这样的集合中,它就会阻塞,但显然它不是以这种方式构造的。

相反,它是使用特定限制构建的,您仍然可以使用上面显示的.BoundedCapacity属性来了解此限制。

答案 1 :(得分:0)

As read here,默认构造函数构建一个没有上限的阻塞集合。所以你的问题就在其他地方。