1

チーム:

WF サービス (XAMLX) から WF アクティビティ (XAML) を非同期的に呼び出す必要があります。私は既に Microsoft.Activities.Extensions フレームワークを参照しており、ステート マシンの Platform Update 1 で実行しています。したがって、ソリューションがこれらのライブラリのいずれかに既に含まれている場合は、準備完了です。

ここで、そのアクティビティ (XAML) を非同期的に呼び出す必要がありますが、サービス (XAMLX) で変数を設定する必要がある出力パラメーターがあります。誰かが私にこれに対する解決策を提供してもらえますか?

ありがとう!


* アップデート *

写真を投稿できるようになりました* 思うに *、私には十分な評判があるからです! ここにいくつか出して、私の問題をよりよく説明してみましょう。最初の図は、ワークフローの 2 つのエントリ ポイントを持つ WF サービスです。2 番目の図は、ワークフロー自体です。

このワークフローは、常にそれ自体を再起動するオーケストレーション メカニズムであり、WF を使用して永続的なトランザクションのキューを管理できるように、いくつかのフェールオーバー メカニズム (エラーしきい値での終了やソフト終了など) を備えています。

これで、すべてが 1 つの WF サービスであったときに、このワークフローがうまく機能しました。これは、サービスを呼び出して応答を取得し、その応答の値をトリガー内の別のエントリ ポイントに送り返してソフト エグジットを発行できるためです。しかし、別のプロジェクトでワークフロー自体を WF アクティビティにし、WF サービス アプリケーション プロジェクトで受信/送信-返信シーケンスを作成するよう求める新しい要件が発生しました。

ただし、このワークフローを開始して忘れることができるようにする必要があります。その後、後でソフト終了が必要であることを何らかの形で知らせる必要がありますが、WF は単一のスレッドで実行されるため、これは少し困難になっています。一番。

WF サービス シーケンス

WF アクティビティ シーケンス

4

1 に答える 1

2

XAML アクティビティで厳密に言えば、Parallel と ParallelForEach は非同期を実行する方法です。

ワークフロー スケジューラは単一のスレッド (UI によく似ています) のみを使用するため、AsyncCodeActivity を実装しない限り、実行中のアクティビティは通常同じスレッドで実行されます。 AsyncCodeActivity 実装が呼び出している非同期コードからのコールバック。

したがって、これがあなたが達成したいことだと確信していますか?最初の応答を送信した後に実行したいということですか? この場合、返信の送信の後にアクティビティを配置します。

これらの提案で質問の答えが得られない場合は、さらに情報を提供してください。/

更新: 提起された元の要件 (サービスの受信/送信アクティビティから実装を分離する) は、実際には、ターゲット アクティビティをサービスとしてホストすることによって解決される場合があります。次のリンクを参照してください http://blog.petegoo.com/index.php/2011/09/02/building-an-enterprise-workflow-system-with-wf4/

于 2012-02-15T03:11:23.610 に答える