データブロックの完了状態を変更することが可能かどうかを知りたいですか?タスクデータフロー、データブロックを完了状態から変更できますか?
たとえば、block.Complete()
と書かれたvar block = new BufferBlock<int>();
データブロックをマークしました。ブロックは他のデータブロックにリンクされています。私はblock
を完了状態を元の!complete状態に戻して再実行できるかどうかを知りたいと思います。
a)すべてのブロックのデリンクを解除しなくても、b)すべてのブロックを再インスタンス化し、c)すべてのブロックを再度リンクする必要はありませんか?
フレーム全体を再作成せずに各ブロックを完了することを含むデータフローのサイクルを簡単に実行できるアイデアはありますか?
おかげ
なぜ別々のランが必要なのですか?また、なぜデータフローネットワークを再構築したくないのですか?パフォーマンスに影響するとは思えませんが(1秒間に何回も実行しない限り)、コードをもっと複雑にするべきではありません。 – svick
個別の実行は要件の一部です。ネットワーク全体を再作成すると、tplデータフローの選択によって得られる効率が完全に無効になります。主な頭痛は、各データフローブロックの再作成ではなく、リンクを解除して再リンクすることです。完了状態を変更できない場合、どうすれば各データフローブロックの完了状態に影響を与えずに完了を通知できますか?私は原子のフラグを送信することはできません。なぜなら、チェーンのオブジェクトタイプが同一ではないからです(変換ブロックが含まれています)。 –