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

CLICK FOR LARGER IMAGE.

我最近一直在研究TPL Dataflow,而不是因为它的线程和并行性,而是因为它在没有大型凌乱代码处理边缘情况的情况下实现数据流水线的程度。该仿真可能每500ms左右运行一次,并且实际上不是时间紧迫的。

我一直在研究该库,并且已经阅读了几次文档,但是我一直在努力实现它的解决方案。在上面图示的节点概念中,我不确定什么适合Dataflow节点。

我希望就TPL Dataflow是否适合这里,以及如果这样,对Dataflow Block对应对象中每个图片节点的基本实现提供一些建议。

最佳答案

我认为TPL Dataflow不太适合。有以下几个原因:

  • TDF没有双工(双向)通信,您将需要以某种方式进行连接。
  • 在TDF中,块通常接收消息,然后产生更多消息以沿管道发送。这似乎不是您所需要的(除了集线器节点之外),至少不是逻辑上的。

  • 但是我认为您的要求不需要像TDF那样重的东西。我认为您应该做的是:
  • 创建简单的消息发送库,可能使用类似于客户端-服务器的体系结构:客户端(例如,消费者节点或分发节点)将消息发送到服务器(例如,分发节点或电源节点),服务器可能通过以下方式回复有点延迟。如果客户端连接到多个服务器,则它将相同的消息发送给所有服务器,并决定如何处理多个响应(可能只接受第一个响应;这也意味着客户端必须能够拒绝响应)。
  • 创建一个PowerStore类,该类存储功率并可以用来获取功率。它将返回Task,因此使用者可以等待直到可用电源为止。
  • 使用以上两点,构建节点应该相对简单。
  • 10-08 14:45