特定の種類のワークフロー (WF 3.5) を実行するための UI を含むキュー メカニズムを実装しました。ユーザーがワークフローをキャンセル/終了できるようにしたかったのです。終了は同期である必要はありません。キャンセルが進行中であることを示し、後で状態を更新できるようにすれば十分です。
これまでのところ、ワークフロー インスタンスの関数Terminate()を使用してワークフローを強制終了することができました。これは完全に同期的にも機能しますが、ワークフローに終了に反応する機会を与えていないようです。私が試したことは:
- ワークフローのレベルでキャンセル ハンドラを作成しますが、これは実行されませんでした。
- ワークフローのレベルで、エラーの種類がWorkflowTerminatedExceptionのエラー ハンドラーを作成します。これも実行されませんでした。
基本的に、終了とは、ワークフローが現在何をしているかに関係なく、ワークフローを即座に終了することを意味するようです。する方法はありますか:
- 他の方法で (Terminate() 関数を使用して) 終了を処理しますか? (もしかしたら私の設定ミスかもしれません)
- キャンセル ハンドラまたは障害ハンドラが実行され、整理などの機会が与えられるように、ワークフローを外部でキャンセルします。