【问题标题】:Is there a Filo implementation of a BufferBlock?是否有 BufferBlock 的 Filo 实现?
【发布时间】:2018-02-20 21:12:25
【问题描述】:

我将消息推送到BufferBlock,然后我想将其路由到两个 BufferBlock 之一。主 Block (P) 将获取所有消息,直到 Buffer 中有一定数量的消息。一旦 P 缓冲区被填满,我想将消息推送到 FILO BufferBlock(S) 中。然后我想通过ActionBlock 从这些缓冲区中消费,如果它有消息,则优先级在 S 上。

我想我可以弄清楚如何将所有东西组装在一起,但我尝试查看 corefx 中 BufferBlock 的实现,但我认为我不具备使它成为 FILO 的能力。

TLDR:是否已经有BufferBlock 的实现,即 FILO,或者是否有一种简单的(相对)方法可以通过修改 corefx 的源来制作 BufferBlock FILO?

【问题讨论】:

  • 似乎最合适的是ConcurrentStack
  • 是的,我正在考虑,我只是想使用 TPL 的东西来清洁
  • 最终使用并发堆栈

标签: c# task-parallel-library tpl-dataflow


【解决方案1】:

是否已经有BufferBlock 的实现,即 FILO,或者是否有一种简单(相对)的方法可以通过修改 corefx 的源来制作 BufferBlock FILO?

不在标准库中。如果你想创建一个新块,你应该实现基础接口(例如IPropagatorBlock)或使用静态方法DataflowBlock.Encapsulate,而不是修改标准块的代码。

您可以在 MSDN 或官方Introduction to TPL Dataflow 中找到更多信息。

【讨论】:

  • 刚刚花了几个小时试图做到这一点,这对我来说浪费更多的时间在工作上。我将把它打开,以防有人在几天内提出任何问题。
猜你喜欢
  • 1970-01-01
  • 2017-12-27
  • 1970-01-01
  • 2016-09-11
  • 2011-12-11
  • 2010-10-24
  • 2012-08-21
  • 2011-06-10
  • 1970-01-01
相关资源
最近更新 更多