J'ai mis en place un mécanisme de file d'attente comprenant une interface utilisateur pour l'exécution de certains types de flux de travail (WF 3.5), dans lequel je souhaitais inclure la possibilité pour un utilisateur d'annuler / de terminer le flux de travail. L'arrêt n'a pas besoin d'être synchrone, il suffirait de montrer que l'annulation est en cours et de permettre à l'utilisateur de rafraîchir l'état plus tard.
Jusqu'à présent, j'ai réussi à utiliser simplement la fonction de l'instance de flux de travail Terminer() pour interrompre le flux de travail, ce qui fonctionne parfaitement et même de manière synchrone, mais il semble que le flux de travail n'ait aucune chance de réagir à l'interruption. Ce que j'ai essayé, c'est :
- Créer un gestionnaire d'annulation au niveau du flux de travail, ceci n'a pas été exécuté.
- Créer un gestionnaire d'erreurs au niveau du flux de travail, avec le type d'erreur suivant WorkflowTerminatedException . Cela n'a pas été exécuté non plus.
En fait, il semble que l'arrêt signifie réellement l'arrêt immédiat du flux de travail, quelle que soit l'activité qu'il est en train de réaliser. Existe-t-il un moyen de :
- Gérer la fin (avec la fonction Terminate()) d'une autre manière ? (peut-être des paramètres qui m'ont échappé)
- Annuler le flux de travail de manière externe de telle sorte que son gestionnaire d'annulation ou son gestionnaire d'erreur soit exécuté, ce qui lui donne la possibilité de mettre de l'ordre, etc. ?