c# - 如何取消和回滚部分工作流程

标签 c# workflow workflow-foundation-4

我有一个运行时间很长的工作流,它在视频处理设备之间移动视频文件,然后将文件状态报告给用于驱动 UI 的数据库

有时,用户会按下 UI 上的按钮以“接受”一个文件到视频存储服务器中。这涉及将文件从一台服务器复制到另一台服务器。]

他们询问是否可以取消此事件。

我查看了 wf4 文档,但看不到回滚部分工作流程的方法。

这可能吗,我应该使用什么技术。

最佳答案

这是两个用于恢复工作的基本内置事件。

  1. ACID 事务的 TransactionScope
  2. 长期运行工作的补偿事件。

通过 Compensable 事件,您可以将事件添加到补偿处理程序以撤消之前完成的工作。补偿事件可用于触发补偿。如果没有补偿,您将在工作流结束时自动或在您使用 Conform 事件时获得确认处理程序。

参见 A Developer's Introduction to Windows Workflow Foundation (WF) in .NET 4由 Matt Milner 提供更多详细信息。

关于c# - 如何取消和回滚部分工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12619717/

相关文章:

c# - 如何检索 MVC 页面上所有输入的所有值

c# - P/从 c# 调用非托管 C++ 代码 - 获取 "tried to access protected memory error"

python - 有人知道 Python 中的工作流框架/库吗?

workflow-foundation - 如何在工作流中处理用户输入

c# - 什么时候在 WF4 中使用 BizTalk Mapper Activity 而不是 BizTalk Engine?

c# - 浏览 FindContours 方法找到的轮廓层次结构?

c# - 枚举时修改了集合

Mercurial 每个功能工作流程,单个开发人员

javascript - Microsoft Dynamics CRM 在后台运行脚本(或类似的东西)

xaml - 查询状态机中可能的 future 状态的当前状态