AIには、シーケンスワークフローを含むWF 4アプリケーションがあります。このワークフローには、3つの連続したアクティビティを持つシーケンスを含むParallelForがあります。 これらのアクティビティの最初は計算バインド(証明書署名要求を生成)、2番目はIOバウンド(電子メール送信)、3番目のタスクはIOバウンド(データベースを更新)です。ParallelForに含まれるWFシーケンス内のすべてのアクティビティをAsyncCodeActivityにする必要がありますか?
これらはすべてCodeActivitiesとして最初に開発され、本当にマルチスレッドモードで動作させるにはAsyncCodeActivitiesである必要があります。だから私は、最初の計算にバインドされたアクティビティをAsyncCodeActivityとして変更し、それがマルチスレッドで実行されているのがわかります。 (少なくとも、Devマシン上ではプロセッサの使用率が非常に高くなっているため、マルチスレッドで動作していると思われます)
ただし、後続のタスクは非同期のCodeActivitiesとして残ります。次のように私の質問は以下のとおりです。
は、私は(私はこのケースになります疑いがある)だけでなく非同期に2番目と3番目の活動を変換する必要がありますか?
もしそうでなければ、最初にAsyncCodeActivitiyで2番目と3番目がないときに、は実際にがParallelFor内でどのように実行されますか?
ああ、非同期としてシーケンス内で計算力の強い最初のアクティビティを実行し、シーケンス内の2つの後続のアクティビティを非同期として行う方がよいでしょう。 – Redeemed1
サーバー上でこれを実行しており、適切な妥当な作業負荷が必要であると想定している場合。 – Maurice