【问题标题】:Exit a workflow?退出工作流程?
【发布时间】:2011-02-03 19:56:46
【问题描述】:

有没有比抛出InvalidWorkflowException 更优雅地退出工作流的方法?我正在编写一个活动(与 SQL 数据库交互),如果操作失败,该活动需要短路。

我知道它可以分成多个步骤/活动并将它们链接起来,但是我可以从一个活动中设置我的执行状态吗?

类似this.currentContext.SetState(Cancelled)?

【问题讨论】:

    标签: c# workflow-foundation workflow-activity


    【解决方案1】:

    我认为这真的取决于您如何布置工作流程。如果这不是例外情况,请继续在您的工作流程中处理它。您可以设置一个属性,然后结束该任务。下一个任务可以是一个决策任务,用于决定是停止所有处理还是继续后续步骤。

    如果是异常情况,那么你应该抛出一个异常,让所有的补偿逻辑去做它的事情。

    【讨论】:

      【解决方案2】:

      我真的不确定,因为我对使用 Windows 工作流比较陌生,但是使用 NativeActivity 并查看 NativeActivityContext.CancelChildren 怎么样?

      也可以看看 MSDN 上的这篇文章:Modeling Cancellation Behavior in Workflow

      【讨论】:

        【解决方案3】:

        我认为这与任何其他程序中的情况相同。如果您的活动中发生错误,您将抛出一些异常,您将使用 try/catch 活动来处理它并优雅地终止 WF。

        【讨论】:

          猜你喜欢
          • 2020-12-26
          • 2016-05-17
          • 1970-01-01
          • 2020-06-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多