Windows 工作流 4:WorkflowApplication Cancel、Terminate 和 Abort 之间的区别 [英] Windows workflow 4 : difference between WorkflowApplication Cancel, Terminate and Abort

查看:44
本文介绍了Windows 工作流 4:WorkflowApplication Cancel、Terminate 和 Abort 之间的区别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

谁能解释一下WorkflowApplication的以下方法有什么区别:

Can any one explain what the difference is between the following methods of WorkflowApplication:

中止取消终止

推荐答案

在进一步调查这个问题后,我想总结一下不同之处:

After further investigating this issue, I want to summarize the differences:

终止:

  • 将触发工作流应用程序的 Completed 事件
  • CompletionState (WorkflowApplicationCompletedEventArgs) 出现故障
  • 将触发工作流应用程序的 Unloaded 事件
  • 工作流完成
  • 将调用活动的 OnBodyCompleted

取消:

  • 将触发工作流应用程序的 Completed 事件
  • CompletionState (WorkflowApplicationCompletedEventArgs) 已取消
  • 将触发工作流应用程序的 Unloaded 事件
  • 工作流完成
  • 将调用活动的 OnBodyCompleted

中止:

  • 将触发工作流应用程序的 Aborted 事件
  • 工作流未完成

未处理的异常

  • 触发 OnUnhandledException
  • 在这个事件处理程序中,返回值(UnhandledExceptionAction 类型)决定了接下来会发生什么:
  • UnhandledExceptionAction.Terminate 将终止工作流实例
  • UnhandledExceptionAction.Cancel 将取消工作流实例
  • UnhandledExceptionAction.Abort 将中止工作流实例
  • 每个都会触发上面解释的相应事件

更新:中止似乎不会触发 SQL 持久存储中的实例卸载.所以在我看来,你最好使用取消或终止,如果你必须根据完成状态执行一些操作,你可以在 Complete 事件中检查 CompletionState.

Update: Abort does not seem to trigger unloading of the instance in the SQL persistence store. So it seems to me, you better use Cancel or Terminate and if you have to perform some action based upon the completion status, you can check CompletionState in the Complete event.

这篇关于Windows 工作流 4:WorkflowApplication Cancel、Terminate 和 Abort 之间的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆