Windows ステート マシンのワークフローでエンド ユーザーと通信できるようにしようとしています。StateActivity 内で実装しようとしている一般的なパターンは次のとおりです。
StateInitializationActivity: 質問に対する回答を要求するメッセージをユーザーに送信します (例: 「このドキュメントを承認しますか?」)。...
...EventDrivenActivity: ユーザーが送信した回答を処理する
StateFinalizationActivity: キャンセル メッセージ (例: 「このドキュメントを承認しますか?」)文書は撤回され、承認は必要ありません)
StateActivity が「リーフ状態」(つまり、子状態がない) の場合、これはすべて正常に機能します。ただし、状態の再帰合成を使用したい場合は機能しません。非リーフ ステートの場合、StateInitialization と StateFinalization は実行されません (この動作は、Reflector を使用して StateActivity ソース コードを調べて確認しました)。EventDrivenActivity はまだリッスンしていますが、エンド ユーザーは何が起こっているのかわかりません。
StateInitialization については、これを回避する 1 つの方法は、EventDrivenActivity とゼロ遅延タイマーに置き換えることだと思いました。StateFinalization をどうするか悩んでいます。
だから - リーフ以外の状態であっても、状態のファイナライズアクティビティを常に実行する方法について誰か考えがありますか?