gpt4 book ai didi

c# - TPL 数据流是否适用于这种设计类型?

转载 作者:太空狗 更新时间:2023-10-29 23:00:20 25 4
gpt4 key购买 nike

我目前正在研究模拟连接对象之间资源和消息传输的方法,例如设备的电源或网络系统上的控制消息:

enter image description here CLICK FOR LARGER IMAGE.

我最近一直在研究 TPL 数据流,不是因为它的线程和并行性,而是因为它在没有大量困惑代码处理边缘情况的情况下如何很好地实现数据流水线。模拟可能每 500 毫秒左右只运行一次,而且实际上对时间并不关键。

我一直在玩这个库,已经阅读了文档,现在已经读过几次了,但我正在努力用它来实现一个解决方案。在上图的节点概念中,我不确定什么适合数据流节点。

我很想就 TPL 数据流是否适合此处获得一些建议,如果是的话,数据流 block 对应项中每个图示节点的基本实现。

最佳答案

我认为 TPL Dataflow 不太适合这种情况。有几个原因:

  1. TDF 没有双工(双向)通信,您需要以某种方式将其固定。
  2. 在 TDF 中, block 通常接收消息,然后生成更多消息以沿管道发送。这似乎不是您所需要的(您的中心节点除外),至少在逻辑上是这样。

但我认为您的要求不需要像 TDF 这样重量级的东西。我认为你应该做的是:

  1. 创建一个简单的消息发送库,可能使用类似客户端-服务器的架构:客户端(例如消费者节点或分发节点)向服务器(例如分发节点或电源节点)发送消息,服务器回复,可能会有一些延迟。如果客户端连接到多个服务器,它会向所有服务器发送相同的消息并决定如何处理多个响应(可能是只接受第一个;这也意味着客户端必须能够拒绝响应)。<
  2. 创建一个 PowerStore 类来存储能量并可用于获取能量。它将返回一个 Task,这样消费者就可以等到电源可用。
  3. 利用以上两点,搭建你的节点应该会比较简单。

关于c# - TPL 数据流是否适用于这种设计类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15861657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com