【问题标题】:Is there a way to detect breaks in a TPL Dataflow graph有没有办法检测 TPL 数据流图中的中断
【发布时间】:2015-07-09 17:17:02
【问题描述】:

我创建了相当复杂的 TPL 数据流图,并且经常会发生图中某处出现中断的情况。其症状只是应用挂起,因为某些数据流块正在等待消息。

除了手动跟踪图表之外,是否有其他方法可以检测何时发生这种情况?我可以看到 DataflowBlock 的调试视图中有一个 LinkedTargets 属性可用 - 当我有休息时,它被设置为 0。但是,由于这不是公开的,所以我不能写一些东西来自动检查这个。

【问题讨论】:

    标签: c# tpl-dataflow


    【解决方案1】:

    您可以使用反射。 TPL Dataflow Debugger Visualizer 使用反射来检索DataFlowBlockDebugInfoRetriever.GetInnerDataFlowDebuggerInfo 中的链接目标,并为每个块创建nodes 列表。然后它会创建一个图形结构using QuickGraph

    此结构可以像 Visualizer 那样可视化,或者您可以在代码中搜索分区。 Quickgraph 已经implements several algorithms 可能有用。

    不过,一个更简单的解决方案是只搜索具有 0 个链接目标的非 ActionBlock 块

    【讨论】:

      猜你喜欢
      • 2020-04-01
      • 2012-03-17
      • 2021-10-13
      • 2022-06-28
      • 1970-01-01
      • 2015-08-12
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      相关资源
      最近更新 更多