2011-12-13 18 views
0

私はWFの新機能ですので、以下のことを理解してください。 私は、入力としていくつかのデータを取り込み、処理して戻すワークフローがあるとします。私の仕事は、多くのデータ項目を並行して処理することです。私が理解する限り、Workflowの単一インスタンスは、並列ではなく順次にしか実行できません。どうやら、各データ項目の新しいワークフローをインスタンス化するのは非常に高価なので、まずはWorkflowインスタンスのプールを作成して、並列ループで実行することです。このようなシナリオにアプローチするには、より良い方法がありますか?ワークフローを並行して実行する

+0

この質問に対する回答は次のとおりです:http://stackoverflow.com/questions/8856224/execute-single-workflow-instance-in-parallel – yuramag

+1

私はあなたが答えがあなたの手助けをした場合は、それを授与してください。これは他の人が将来あなたを助けることを奨励します。 –

答えて

1

なぜ新しいワークフローのインスタンスが非常に高価だとお考えですか? WFは本質的にメソッドであり、コードで宣言した場合(例えばXMLからロードするのではなく)、オーバーヘッドがありません。別のスレッドで異なるワークフローを実行する非同期メソッドを提供するWorrkflowInvokerクラスを使用できます(実行中にさらに情報が必要な場合、たとえばライフサイクルイベント、ブックマークなどでWorkflowApplicationを使用する場合)。 詳細については、Using WorkflowInvoker and WorkflowApplicationを参照してください。

+0

私が高価だったのは、私のワークフローがXAMLで宣言されている数百のアクティビティで構成されているということです。ワークフローをインスタンス化するとは、その中の各アクティビティのコンストラクタを実行することです。また、ある時点でガベージコレクションを行う必要があります。何百回ものオブジェクトが1回のリクエストごとにインスタンス化されるとどうなるか想像してください。それは資源の無駄ではないですか? – yuramag

関連する問題