这是情景:
我使用 ManualWorkflowScheduler 进行状态机工作流程。假设有2种状态: State1 和 State2 。 State1包含 EventDrivenActivity1 ,其 SetStateActivity1 将工作流从State1移动到State2。 State1还有一个StateFinalizationActivity1。
所以我的问题是:
当引发事件并且SetStateActivity1执行并将工作流的状态更改为State2时,StateFinalizationActivity1在同一线程(作为调用的一部分)上执行,因为引发事件导致状态更改的方法(意思是 - 调用方法必须等到EventDrivenActivity1和StateFinalizationActivity1的两个序列都执行,否则它将在EventDrivenActivity1执行后返回并且StateFinalizationActivity1将在返回后执行??
答案 0 :(得分:1)
使用ManualWorkflowScheduler时,可执行的所有内容都将在当前线程上。因此,工作流将继续并一直运行,直到它处于下一个状态并且空闲。
答案 1 :(得分:1)
使用“终结”这个词我想可能会让人有些想到CLR终结,它将在不同的线程上运行。然而,这是一个非常不同的概念。
当达到SetStateActivity时,会发生以下顺序: -
以上所有内容都按顺序在当前线程上运行。