.net Windows Workflow Foundation:以并行顺序持久化 我有一个包含并行活动的Windows工作流基础工作流。在这个并行活动中,有一些活动序列可能需要相当长的时间(序列和序列中的活动)

.net Windows Workflow Foundation:以并行顺序持久化 我有一个包含并行活动的Windows工作流基础工作流。在这个并行活动中,有一些活动序列可能需要相当长的时间(序列和序列中的活动),.net,workflow,workflow-foundation-4,workflow-foundation,.net,Workflow,Workflow Foundation 4,Workflow Foundation,这些活动源自NativeActivity,并使用书签和System.Threading.Tasks.Task来执行其工作 一般来说,并行运行它们很好 现在,我想在并行分支中的几个地方添加Persist活动 假设我们有两个平行的分支A,B,在A中有活动1,2,在B中有活动3,4 星号符号表示有东西正在运行: | Branch A | Branch B | |##############|##############| | Activity 1 | Activity 3

这些活动源自NativeActivity,并使用书签和System.Threading.Tasks.Task来执行其工作

一般来说,并行运行它们很好

现在,我想在并行分支中的几个地方添加Persist活动

假设我们有两个平行的分支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应该只应用于它所在的分支

由于我认为整个工作流程是持久化的,我假设这不是它的工作方式,但我希望被证明是错误的!
那么,我能实现这种行为吗?

你的基本前提是错误的。。。。。工作流将只处理其中一个任务,不能处理2和6。在任务2完成并且该分支变为空闲(在持久点)之前,它不会处理6

因此,整个工作流得到持久化的事实并不重要