主要内容

退出状态

当存在从某个状态的有效转换时,将该状态标记为退出。一个状态以下列方式之一被标记为退出:

  • 向外过渡起源于州边界。

  • 向外过渡跨越了州界。

  • 目标状态是激活状态的并行状态子状态。

退出状态工作流

这个流程图显示了statflow中事件的进展®退出状态。在这个流程图中,当前状态是指决策或过程正在发生的状态。

显示退出状态步骤的流程图。

退出操作

退出当状态为活动状态且存在从状态的有效转换时,状态的操作将执行。一个州执行它的退出变为非活动前的动作。

退出操作之前有前缀退出前女友,后面跟着一个必需的冒号(),然后接著一个或多个动作。用回车,分号(;),或逗号().

退出状态示例

在本例中,状态流图已初始化,并且条目执行以下操作StateAStateA1。对于这个图表,此图表的操作已发生两次。一个新的时间步长出现,然后图表被唤醒。

请按照状态图执行的工作流评估转换的工作流StateB已经被标记为可以进入。StateA是过渡的源头。在这个时间步X = 5Y = 2,Z = 0

具有称为StateA和StateB的顶级状态的状态流图。州a有次态州a1和州a2。statb有次态statb1和statb2。

通过遵循状态退出操作的流程图,直到图表进入睡眠状态,此图表的执行步骤如下:

  1. StateA难道不是一个超级国家吗StateB

  2. 的退出操作StateA和马克StateA是不活跃的。现在Z = 1

  3. StateA没有父状态。

  4. 输入操作

这些步骤完成退出工作流程StateA。然而,图表还没有睡着。

执行输入图表或状态的工作流StateB完成时间步长。

使用超过渡退出状态

超跃迁是图表中不同层次之间的跃迁。超转换可以是顶层图表中的状态与其某个子状态中的状态之间的转换,也可以是位于不同子状态中的状态之间的转换。您可以创建跨越图表中任意级别的超过渡。

当通过超转换退出状态时,在转换源的退出操作执行之后,其超状态被标记为非活动,超状态的退出操作将被执行。在这个例子中,StateA2被标记为退出StateB1被标记为条目。此时此刻,X = 5Y = 5,Z = 0

具有称为StateA和StateB的顶级状态的状态流图。州a有次态州a1和州a2。statb有次态statb1和statb2。

请按照输入图表或状态的工作流直到图表进入睡眠状态,退出状态的执行步骤StateA2的顺序如下:

  1. StateA2不是目标状态的超状态(StateB1).

  2. 执行退出操作StateA2和马克StateA2是不活跃的。

  3. StateA2有一个父状态,StateA

  4. StateA不是目标状态的超状态(StateB1).

  5. 执行退出操作StateA,并标记StateA是不活跃的。

  6. StateA没有父状态。

这些操作完成了退出工作流程StateA2StateA。然而,图表还没有睡着。

执行输入图表或状态的工作流StateBStateB1完成时间步长。

相关的话题