StateMachineWorkflowActivity 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
注意
The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*
充当状态机工作流的根容器。 包含事件驱动的活动和状态。
public ref class StateMachineWorkflowActivity : System::Workflow::Activities::StateActivity
[System.Drawing.ToolboxBitmap(typeof(System.Workflow.Activities.StateMachineWorkflowActivity), "Resources.StateMachineWorkflowActivity.png")]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.Activities.StateActivityValidator))]
public class StateMachineWorkflowActivity : System.Workflow.Activities.StateActivity
[System.Drawing.ToolboxBitmap(typeof(System.Workflow.Activities.StateMachineWorkflowActivity), "Resources.StateMachineWorkflowActivity.png")]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.Activities.StateActivityValidator))]
[System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
public class StateMachineWorkflowActivity : System.Workflow.Activities.StateActivity
[<System.Drawing.ToolboxBitmap(typeof(System.Workflow.Activities.StateMachineWorkflowActivity), "Resources.StateMachineWorkflowActivity.png")>]
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.Activities.StateActivityValidator))>]
type StateMachineWorkflowActivity = class
inherit StateActivity
[<System.Drawing.ToolboxBitmap(typeof(System.Workflow.Activities.StateMachineWorkflowActivity), "Resources.StateMachineWorkflowActivity.png")>]
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.Activities.StateActivityValidator))>]
[<System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")>]
type StateMachineWorkflowActivity = class
inherit StateActivity
Public Class StateMachineWorkflowActivity
Inherits StateActivity
- 继承
- 属性
示例
下面的代码示例演示如何创建 StateMachineWorkflowActivity 类的新实例,并使用它来实现基本状态机,以在三种状态之间进行转换。 此代码示例是 StateMachineWorkflow.cs 文件中 SimpleStateMachineWorkflow SDK 示例的一部分。 有关详细信息,请参阅 简单状态机。
this.WhileLoop = new System.Workflow.Activities.WhileActivity();
this.Parallel = new System.Workflow.Activities.ParallelActivity();
this.Sequence1 = new System.Workflow.Activities.SequenceActivity();
this.Sequence2 = new System.Workflow.Activities.SequenceActivity();
this.ConsoleMessage1 = new System.Workflow.Activities.CodeActivity();
this.ConsoleMessage2 = new System.Workflow.Activities.CodeActivity();
//
// WhileLoop
//
this.WhileLoop.Activities.Add(this.Parallel);
codecondition1.Condition += new System.EventHandler<System.Workflow.Activities.ConditionalEventArgs>(this.WhileCondition);
this.WhileLoop.Condition = codecondition1;
this.WhileLoop.Name = "WhileLoop";
//
// Parallel
//
this.Parallel.Activities.Add(this.Sequence1);
this.Parallel.Activities.Add(this.Sequence2);
this.Parallel.Name = "Parallel";
Me.WhileLoop = New System.Workflow.Activities.WhileActivity()
Me.Parallel = New System.Workflow.Activities.ParallelActivity()
Me.Sequence1 = New System.Workflow.Activities.SequenceActivity()
Me.Sequence2 = New System.Workflow.Activities.SequenceActivity()
Me.ConsoleMessage1 = New System.Workflow.Activities.CodeActivity()
Me.ConsoleMessage2 = New System.Workflow.Activities.CodeActivity()
'
' WhileLoop
'
Me.WhileLoop.Activities.Add(Me.Parallel)
AddHandler codecondition1.Condition, AddressOf Me.WhileCondition
Me.WhileLoop.Condition = codecondition1
Me.WhileLoop.Name = "WhileLoop"
'
' Parallel
'
Me.Parallel.Activities.Add(Me.Sequence1)
Me.Parallel.Activities.Add(Me.Sequence2)
Me.Parallel.Name = "Parallel"
注解
注意
此材料讨论已过时的类型和命名空间。 有关详细信息,请参阅 Windows Workflow Foundation 4.5中
StateMachineWorkflowActivity 是一个活动容器,用于创建遵循状态机模型的工作流。
StateMachineWorkflowActivity 是一种 CompositeActivity,这意味着 StateMachineWorkflowActivity 可以包含其他活动。 StateMachineWorkflowActivity 和 EventDrivenActivity 活动是 StateMachineWorkflowActivity唯一允许的子活动。 允许 EventDrivenActivity 活动,因为根活动本身的行为类似于状态。 因此,可以在 StateMachineWorkflowActivity中的所有状态活动使用的根级别具有 EventDrivenActivity 活动。 此级别的 EventDrivenActivity 活动提供用于处理工作流事件和自动执行状态转换的全局机制。 StateActivity 活动提供了一种机制来定义模型中的各个阶段。
StateMachineWorkflowActivity 具有执行状态机工作流所需的属性。 最值得注意的是,StateMachineWorkflowActivity 有两个重要属性:InitialStateNameProperty 和 CompletedStateNameProperty。
状态机的 InitialStateNameProperty 是状态机创建状态机实例时的状态。 InitialStateNameProperty 属性是必需的,必须在创建 StateMachineWorkflowActivity 时提供。 状态机 InitialStateNameProperty 类似于状态机中包含的任何其他状态活动。 状态活动可以是 StateMachineWorkflowActivity 根活动的直接子级,StateMachineWorkflowActivity 只能有一个 InitialStateNameProperty。
StateMachineWorkflowActivity 的 CompletedStateNameProperty 是指定为 StateMachineWorkflowActivity结束状态的 StateActivity 活动。 转换到 CompletedStateNameProperty时,工作流执行已完成。 CompletedStateNameProperty 不是强制性的。 这意味着你可以有一个尚未完成的 StateMachineWorkflowActivity。 这并不意味着状态机工作流始终在内存中处于活动状态。 等待事件时,可能会卸载 StateMachineWorkflowActivity。
StateMachineWorkflowActivity 从未完成的活动在处理长时间运行的业务交易时特别有用,就像供应商收到的采购订单一样。 已履行采购订单的事实并不意味着采购订单过程已结束。 可能返回属于采购订单的货物,或者可以修改采购订单,并在履行后添加其他商品。 有时,出于法律或其他目的,可能需要在较长时间内保留采购订单记录。 工作流未完成的事实只是意味着工作流仍处于卸载状态。 可能需要停用工作流,这意味着在一定时间段后,工作流实例可能会被迫关闭。
构造函数
StateMachineWorkflowActivity() |
已过时.
初始化 StateMachineWorkflowActivity 类的新实例。 |
StateMachineWorkflowActivity(String) |
已过时.
使用活动的名称初始化 StateMachineWorkflowActivity 类的新实例。 |
字段
CompletedStateNameProperty |
已过时.
表示面向 CompletedStateName 属性的 DependencyObject。 |
InitialStateNameProperty |
已过时.
表示面向 InitialStateName 属性的 DependencyObject。 |
SetStateQueueName |
已过时.
用于更改 StateMachineWorkflowActivity状态的 WorkflowQueue 的名称。 此字段为常量。 |
StateChangeTrackingDataKey |
已过时.
保留更改跟踪数据键的字符串值;“StateActivity.StateChange”。 此字段是常量。 (继承自 StateActivity) |
属性
方法
事件
Canceling |
已过时.
取消活动执行时发生。 (继承自 Activity) |
Closed |
已过时.
当 Activity 完成执行时发生。 (继承自 Activity) |
Compensating |
已过时.
在 Activity上运行补偿方法时发生。 (继承自 Activity) |
Executing |
已过时.
运行 Activity 时发生。 (继承自 Activity) |
Faulting |
已过时.
在实例运行期间引发异常时发生。 (继承自 Activity) |
StatusChanged |
已过时.
当正在运行的 Activity 的 ActivityExecutionStatus 发生更改时发生。 (继承自 Activity) |
显式接口实现
IComponent.Disposed |
已过时.
表示处理组件的 Disposed 事件的方法。 (继承自 DependencyObject) |