CompositeActivity

CompositeActivity 类

Activity 的派生,前者是包含其他活动的所有活动的基类。CompositeActivity 负责管理其子活动的执行。

命名空间:   System.Workflow.ComponentModel
程序集:   System.Workflow.ComponentModel(在 System.Workflow.ComponentModel.dll 中)
Visual Basic(声明)
<ActivityValidatorAttribute(GetType(CompositeActivityValidator))> _
<ActivityCodeGeneratorAttribute(GetType(CompositeActivityCodeGenerator))> _
<ContentPropertyAttribute("Activities")> _
Public Class CompositeActivity _
    Inherits Activity
C#
[ActivityValidatorAttribute(typeof(CompositeActivityValidator))]
[ActivityCodeGeneratorAttribute(typeof(CompositeActivityCodeGenerator))]
[ContentPropertyAttribute("Activities")]
public class CompositeActivity : Activity
Visual C++
[ActivityValidatorAttribute(typeof(CompositeActivityValidator))]
[ActivityCodeGeneratorAttribute(typeof(CompositeActivityCodeGenerator))]
[ContentPropertyAttribute(L"Activities")]
public ref class CompositeActivity : public Activity
F#
[<ActivityValidatorAttribute(typeof(CompositeActivityValidator))>]
[<ActivityCodeGeneratorAttribute(typeof(CompositeActivityCodeGenerator))>]
[<ContentPropertyAttribute("Activities")>]
type CompositeActivity =  
    class
        inherit Activity
    end

CompositeActivity 使用在 Activity 类上定义的 ActivityExecutionContext 类方法和事件来管理其子活动的执行。例如,使用 ActivityExecutionContextExecuteActivity 来计划子活动的执行。当子活动完成执行后,通过订阅在 Activity 中定义的 Closed 事件,可以向 CompositeActivity 活动发出通知。

工作流运行时对 CompositeActivity 执行强制实施特定约束,其中最基本的约束是,如果任何子活动仍处于 ExecutingCancelingCompensatingFaulting 状态,则 CompositeActivity 活动不能进入 Closed 状态。

此示例演示一个基本的 CompositeActivity,它在执行时执行其第一个子活动。当子活动进入关闭状态时,将通知复合活动,然后完成其执行。

public class HasOneChildActivity : CompositeActivity
{
    protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
    {
        Activity child = this.EnabledActivities[0];
        child.Closed += this.ChildClosed;
        executionContext.ExecuteActivity(child);

        return ActivityExecutionStatus.Executing;
    }

    void ChildClosed(object sender, ActivityExecutionStatusChangedEventArgs e)
    {
        e.Activity.Closed -= this.ChildClosed;
        ActivityExecutionContext executionContext = sender as ActivityExecutionContext;

        executionContext.CloseActivity();
    }
}
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008, Windows Server 2003

 

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值