我正在寻找一种 TPL 数据流块解决方案,它可以容纳多个项目,它可以链接到多个目标块,但它能够将项目仅转发到通过过滤器/谓词的特定目标块。任何时候都不应将一个项目同时交付给多个目标块,始终只交付给与过滤器匹配的那个,否则该项目可以被丢弃。我不喜欢 BroadCastBlock,因为如果我理解正确,它不能保证交付(或者是吗?)并且过滤是在目标块端完成的,这意味着 BroadCastBlock 基本上将每个项目的副本发送到所有链接到目标块。如果我理解正确的话,它在任何时候都不会超过一件。我不想使用 Post/Async 但维护一个 LinkTo 链。
有没有办法绕过完整的自定义数据流块?还是我误解了 BroadCastBlock 的工作原理?不幸的是,没有太多的文档可以详细介绍并涵盖用例。任何想法都受到高度赞赏。