使用 TPL-Dataflow 进行聚合和连接(内部、外部、左侧...)?

Aggregation and Joins (Inner, Outer, Left, ...) with TPL-Dataflow?

有没有比使用 BatchBlock 缓冲所有项目直到完成、将它们作为集合发出然后使用转换块执行实际聚合?

同样,是否有任何其他方法可以在不使用 BatchedJoinBlock 缓冲两个数据源的所有项目的情况下对两个数据集进行 inner/outer/left/right 连接,将它们作为两个集合的元组发出,然后使用 Transform 块进行实际连接?

TPL Dataflow 中没有这种开箱即用的机制,因为聚合和连接操作与 flowing 无关,它们与查询数据有关。

但是,作为 blocks are perfectly fit with RX library, you can use the Join Patterns in Rx 聚合数据的范例。

更多相关链接:

  • AggregationRx
  • Reactive Extensions for .NET (Rx): Take action once all events are completed
  • Guide to System.Reactive.Joins