問題タブ [tbb-flow-graph]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - tbb::flow::graph からメッセージを削除/キャンセルするには?
いくつかのオブジェクトtbb::flow::graph
で構成される を作成しました。function_node
実行中、複数のメッセージをグラフに渡しています (~10 から ~100000 まで)。ノードの 1 つが例外をスローすることがあります。その場合、グラフ全体の実行がキャンセルされます。つまり、すべてのメッセージが破棄されます。ただし、メッセージは互いに独立しているため、メッセージの実行を停止したくありません。
ノード内で直接例外をキャッチできますが、それが発生すると、メッセージをさらに処理しても意味がありません。
私の質問は、グラフに既にある他のメッセージの実行をキャンセルせずに、グラフから単一のメッセージをキャンセルまたは削除するにはどうすればよいですか?
tbb - 入力の 1 つが空のバッファである場合、TBB join_node の入力を無視する方法は?
https://software.intel.com/content/www/us/en/develop/blogs/a-feature-detection-example-using-the-intel-threading-building-blocksからこの例を変更しようとしてい ます-flow-graph.html
アイデアは、各入力に適用される「前処理」関数と、前処理された入力のすべてのペアに適用され、ストリームをスキャンする「処理」関数があるということです。私の例では、連続する平方数の差を計算するだけです。
以下の私の例は機能しません。最初はバッファが空だからだと思います。ブログの例では、ある時点でバッファがいっぱいになります。電話buffer.try_put(0)
しても解決しないようです。私は何が欠けていますか?そして、バッファが空であるために完全に処理できない最初の要素を単純に無視して、プロセスが自然に機能するようにするためのより良い方法は何でしょうか?