我有一个包含并行活动的 Windows 工作流基础工作流。在此并行活动中,有可能需要相当长时间的活动序列(序列和序列内的活动)。
这些活动派生自 NativeActivity 并使用书签和 System.Threading.Tasks.Task 来执行它们的工作。
通常,并行运行它们可以正常工作。
现在我想在平行分支的几个地方添加 Persist-activities。
假设我们有两个平行的分支 A、B,A 中的活动 1,2,B 中的活动 3,4。
星号符号表示正在运行:
| Branch A | Branch B |
|##############|##############|
| Activity 1 | Activity 3 |
| | PERSIST |
| *Activity 2* | Activity 4 |
| PERSIST | |
| Activity 5 | *Activity 6* |
A 已经关闭了 1,并且正在执行 2,它还没有持久化。B已经关闭3,持久化,关闭4,现在正在执行6。服务器死了
现在,如果我重新启动服务器并恢复 WF 实例,我希望看到分支 A 再次从 1 开始,而 B 从 4 开始。
| Branch A | Branch B |
|##############|##############|
| *Activity 1* | Activity 3 |
| | PERSIST |
| Activity 2 | *Activity 4* |
| PERSIST | |
| Activity 5 | Activity 6 |
因此,简而言之,我希望看到的行为是,对于每个并行分支,persist 应该只适用于它所在的分支。
由于我认为整个工作流程是持续存在的,我假设这不是它的工作方式,但我很想被证明是错误的!那么,我可以实现这种行为吗?