【发布时间】:2018-04-24 08:16:44
【问题描述】:
我构造了一个tbb::flow::graph,它由几个function_node 对象组成。在执行期间,我将多条消息传递到图表中(从 ~10 到 ~100000)。有时其中一个节点会引发异常。如果是这种情况,则取消整个图的执行,这意味着所有消息都将被丢弃。但是,我的消息是相互独立的,我不希望它们的执行被停止。
我可以直接在节点内捕获异常,但是当这种情况发生时,对消息的进一步处理就没有意义了。
所以我的问题是:如何在不取消执行图表中已经存在的其他消息的情况下从图表中取消或删除一条消息?
【问题讨论】:
-
如果您在节点主体中捕获异常并自己处理它,那么图形将不会被取消。你有什么理由不能这样做吗?
-
我在体内处理它。但是一旦抛出异常,该特定消息的进一步执行(将消息传递给节点的继任者)就变得无关紧要了。我只是想知道是否可以从图表中删除消息以消除一些开销,
标签: c++ tbb tbb-flow-graph