22得票2回答
TPL数据流,如何将项转发到多个链接目标块中的一个特定目标块?

我正在寻找一种TPL数据流块解决方案,它可以容纳多个项目,并可以链接到多个目标块,但具有仅将项目转发到通过过滤器/谓词的特定目标块的能力。任何时候都不应将项目同时传递给多个目标块,始终只传递给与过滤器匹配的目标块或者可以丢弃该项。我不喜欢BroadCastBlock,因为如果我理解正确的话,它...

21得票1回答
如何确保数据流块仅在需要时创建线程?

我使用TPL Dataflow API编写了一个小型管道,它从多个线程接收数据并对其进行处理。 设置1 当我将其配置为每个块使用MaxDegreeOfParallelism = Environment.ProcessorCount(在我的情况下为8)时,我注意到它会在多个线程中填充缓冲区,...

21得票1回答
TPL Dataflow(TDF)和Reactive Extensions有什么区别?

经过数天的谷歌搜索,我认为我不能决定哪一个框架适用于哪种场景。当然我想使用一个完美的框架将两者结合起来(这是不现实的)。我甚至知道它们可以一起使用,但真正的问题是每个框架中的哪些核心设计元素使得它们不可能互相模拟。 以下是我找到的: 在RX中,有虚拟时间,因此调度程序有效地控制整个网络,...

21得票5回答
如何在超时后自动调用TriggerBatch,如果排队的项目数量小于BatchSize?

在TPL中使用Dataflow CTP 是否有一种方法,在超时后,如果当前排队或延迟的项目数量小于BatchSize,自动调用BatchBlock.TriggerBatch? 更好的是:每当该块接收到新项目时,此超时应重置为0。

17得票3回答
使用TPL Dataflow与async/await和yield return

我正在尝试使用 TPL Dataflow 实现数据处理管道。然而,我对数据流相对较新,不完全确定如何正确地使用它来解决我的问题。 问题: 我正在尝试遍历文件列表并处理每个文件以读取一些数据,然后进一步处理该数据。每个文件的大小约为 700MB 到 1GB。每个文件包含 JSON 数据。为了...

17得票3回答
TransformBlock永远不会完成

我正在努力理解TPL Dataflow模块中的“完成(completion)”概念。特别是,TransformBlock似乎从来没有完成过。为什么呢? 示例程序 我的代码计算了从1到1000的所有整数的平方。我使用了一个BufferBlock和一个TransformBlock。稍后在我的代...

17得票1回答
明显的BufferBlock.Post/Receive/ReceiveAsync竞争/错误

此帖已发布到http://social.msdn.microsoft.com/Forums/en-US/tpldataflow/thread/89b3f71d-3777-4fad-9c11-50d8dc81a4a9 我知道...我没有充分利用TplDataflow的潜力。目前,我只是使用Bu...

16得票1回答
TPL Dataflow和响应式扩展(Rx)相比,有哪些使用案例?

我正在考虑用其中之一或两者的组合编写一些信号处理算法。 性能不是重点,更重要的是表达意图的清晰度。 我将实现以下“块”并组合它们: 滤波器(FIR和IIR) 相位检测器 积分器 混频器 函数发生器 PLL(使用以上模块构建) 我明白Rx可以被认为是“Linq-to-streams”...

16得票2回答
VS 2012 RC中TPL Dataflow和TPL引用的问题

我刚刚将Visual Studio 11 Beta升级到了新的Visual Studio 2012 RC版本,之后在引用TPL Dataflow时遇到了问题。 首先,我尝试像以前一样从框架中添加引用Dataflow。但是当我尝试这样做时,会出现一个错误提示框: 无法添加对 'Syst...

15得票1回答
BoundedCapacity是否包括在TPL Dataflow中正在处理的项目?

BoundedCapacity 限制只包括等待被处理的输入队列中的项目,还是同时也包括正在处理的项目? 让我们以这个 ActionBlock 为例:var block = new ActionBlock<int>( i => Console.WriteLine(i)...