12得票3回答
ITargetBlock<TInput>中的重试策略

我需要在工作流中引入重试策略。假设有3个块以如下方式连接: var executionOptions = new ExecutionDataflowBlockOptions { MaxDegreeOfParallelism = 3 }; var buffer = new BufferBloc...

14得票1回答
TPL数据流和Rx结合的示例

我只想学习它们以及如何将它们结合使用。我知道它们可以互相补充,但我找不到有人真正做到这一点的例子。

7得票1回答
缓冲块(BufferBlock)和动作块(ActionBlock)使用有界容量(BoundedCapacity)时不会使用最大DOP。

I have this code: var data = new BufferBlock&lt;int&gt;(new DataflowBlockOptions { BoundedCapacity = 1 }); var action = new ActionBlock&lt;int&gt...

8得票2回答
使用TPL Dataflow进行网络命令处理

我正在开发一个系统,涉及通过TCP网络连接接受命令,然后在执行这些命令后发送响应。这是相当基本的东西,但我希望支持以下几个要求: 1. 多个客户端可以同时连接并建立独立的会话。会话可以持续多长时间或者短暂,同一客户端IP可以建立多个并行会话(如果需要)。 2. 每个会话可以同时处理多个命令,...

68得票3回答
限制异步任务的执行速率

我想同时运行一些异步任务,并限制在任何给定时间内等待完成的任务数量。比如你有1000个URL,每次只想打开50个请求;但是只要一个请求完成,就会打开到列表中下一个URL的连接。这样,始终只有50个连接处于打开状态,直到URL列表耗尽。 如果可能的话,我也想利用给定数量的线程。 我已经编写了...

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

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

11得票2回答
在TPL Dataflow中具有保证传递的BroadcastBlock

我有一个数据流要以几种不同的方式进行处理…所以我想将每个收到的消息的副本发送到多个目标,以便这些目标可以并行执行…然而,由于数据的流速比我的目标处理速度要快得多,并且数据量很大,因此我需要在我的块上设置BoundedCapacity。如果没有BoundedCapacity,我很快就会耗尽内存。...

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

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

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

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

9得票1回答
TPL Dataflow如何移除块之间的链接。

我想知道如何去除块之间的链接?换句话说,我想获得与LinkTo相反的效果。 我想基于tlp数据流编写一个记录器。 我编写了这个接口,并希望在需要时删除ILogListener的订阅。 public interface ILogManager { void RemoveListen...