blockingcollection

    3热度

    1回答

    的MSDN言论在http://msdn.microsoft.com/en-us/library/dd267312.aspx状态...... “为BlockingCollection默认集合类型ConcurrentQueue” 这是否意味着,当我在收集运行“GetConsumingEnumerable()”,项目拉动正在从队列中出列,使用后会标记为GC? 换句话说......在下面的代码片段, fo

    0热度

    1回答

    我见过很多关于如何在生产者 - 消费者场景中使用BlockingCollection<T>的示例,甚至在某个时间如何消耗一个元素here。虽然我对并行编程颇为陌生,所以我正面临以下问题: 问题确实在于如何在下面的示例中编写方法ConsumerProducerExample.ConsumerMethod,以使其消耗第一个2 doubleBlockingCollection<Double>对于数组中的

    1热度

    1回答

    我有一个组件向一个基于Web的API提交请求,但这些请求必须被限制,以免违反API的数据限制。这意味着所有请求都必须通过一个队列来控制它们提交的速率,但它们可以(也应该)同时执行以实现最大吞吐量。每个请求在将来的某个时刻必须将某些数据返回给调用代码。 我努力创造一个很好的模型来处理数据的返回。 使用BlockingCollection我不能仅从Schedule方法返回Task<TResult>,因

    0热度

    1回答

    我需要使用阻塞集合,以便我可以异步调用委托。不幸的是,委托有两个参数,包括一个结构和一个额外的字符串。使用该结构是因为它是通过Interop调用外部c函数的结果。 现在我正在寻找一种避免在使用阻塞集合时复制结构的方法。 目前我的代码看起来是这样的: ConsumerQueue.Enqueue(new StructTransfer(structValue, stringValue)); 消费者解

    0热度

    1回答

    我正在寻找一个类似于BlockingCollection的集合对象,让我有多个消费者。但是,我需要这些多个消费者来消费所有的物品。他们无法从中删除项目。从本质上讲,我需要能够从另一个线程添加项目,并期望任何获得Enumerator的人滚动浏览添加的所有项目。并阻止直到它关闭。 是否有这样的集合类型在任何地方?编辑] 好主,猜我会澄清... BlockingCollection.GetConsumi

    2热度

    1回答

    我有一个绑定到一个blockingcollection在我的视图模型 <ListBox Grid.Row="1" ItemsSource="{Binding PlantControllers}" 和财产 public BlockingCollection<PLANTCONTROLLER> PlantControllers { get { return _plant.P

    1热度

    1回答

    我试图围绕BlockingCollection和我的生产者/消费者问题围绕我的头。 我想达到的目标,如下: 各种各样的线程安全队列在FIFO方式持有对象的列表(“工作”)。 第二个线程安全队列,它也以FIFO方式保存这些作业的结果列表。 换句话说: Inbound "Job" Data, can come at any time from multiple threads ==> Thr

    3热度

    1回答

    我有一个BlockingCollection(ConcurrentBag,50000),我正在尝试为生产者线程使用50,000的非常小的有界容量,以最大化我可以在我的消费者中处理的记录数线程的ConcurrentDictionary。生产者比消费者要快得多,否则会消耗大部分内存。 不幸的是,我立即注意到,当我的测试数据执行时,我的ConcurrentDictionary中的记录总数现在大大低于应该

    7热度

    2回答

    我有以下代码与一个生产者线程和多个消费者线程。你知道多个消费者是否线程安全。例如,是否有线程1消耗的可能性,并且线程2并行使用并更改线程1中使用的项目的值? namespace BlockingColl { public partial class Form1 : Form { public Form1() { InitializeComponent();

    0热度

    2回答

    这里是我的问题。 我在一家BlockingCollection public void blockingProducer(BitmapImage imgBSource) { if (!collection.IsAddingCompleted) collection.Add(imgBSource); } 装载发生在backgroungwork线程负载