2011-06-20 10 views
2

私はワークフローの基礎が新です。私は.NET 4コンソールアプリケーションを構築しようとしています。これは多くのタスクに分けられます。ここにタスクの性質があります。他の2つ以上の並列アクティビティに依存するアクティビティをトリガする方法

  1. タスクは互いに独立しており、並列に実行できます。
  2. 2つ以上の新しいタスクが生成されるタスクはほとんどありません。
  3. 並行して実行されている他のタスクの出力に依存するタスクはほとんどなく、必要な入力が完了したときにのみ開始できます。例: enter image description here
ここ

  1. タスク1、図2及び図3に独立しています。 これは並行して実行できます。
  2. タスク4完了すると、5と6が生成されます
  3. タスク7は、タスク 4と2が実行された場合にのみ起動できます。

私は、システムのスレッドと上記行うには、いくつかのメッセージングを使用して独自のフレームワークを書くことができますが、私はワークフロー基盤に4

を活用することができれば、私は思っていた私は、ワークフロー上で、いくつかのサンプルを経て、私はしました並行して実行されている親アクティビティが終了したときに新しいアクティビティをトリガする方法を把握することができません。

また、上記の問題を解決する他の方法が分かっている場合は、教えてください。

答えて

2

これらの依存タスクをParralelアクティビティの下に移動すると、すべての依存関係が満たされていることがわかります。

更新: シーケンスで開始してください。片面にタスク1と4、もう片面に3つのパラレルを追加します。以下は、3本の枝タスク2 + 4

は[Ankush]だからあなたが示唆しているものであるタスク1よりも長くかかる場合、それはしかし、全く同じではありません5,6および7

を含むと別のパラレルを追加このように enter image description here

+0

わかりました。私は1つのイメージを追加しました。だから私がこのアプローチに従えば、私はこの構造を作らなければならないでしょう。 S =シーケンス。 P =パラレル。 P(S(P(S(1,4)、2)、7)、3)あなたがこれを理解してくれることを願っています。しかし、問題は今どこでタスク5と6に合うの? – Ankush

+0

この場合、T5とT6の実行は、T2の時間に基づいてブロックされます。これを避けることはできますか? – Ankush

+0

はい、ブックマークを待つカスタムアクティビティを作成し、別のアクティビティを再開し、すべてを並行して実行するとします。それらのいくつかを追加し、あなたが望むミックスを作成することができます。ワークフローは分かりにくいでしょう。 – Maurice

関連する問題