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