ParallelForEach<T> 类

定义

枚举集合元素并对集合中的每个元素并行执行嵌入语句。

generic <typename T>
public ref class ParallelForEach sealed : System::Activities::NativeActivity
[System.Windows.Markup.ContentProperty("Body")]
public sealed class ParallelForEach<T> : System.Activities.NativeActivity
[<System.Windows.Markup.ContentProperty("Body")>]
type ParallelForEach<'T> = class
    inherit NativeActivity
Public NotInheritable Class ParallelForEach(Of T)
Inherits NativeActivity

类型参数

T

Values 集合中提供的值的类型。

继承
ParallelForEach<T>
属性

示例

下面的代码示例演示如何创建 ParallelForEach<T> 活动。 此示例摘自 公司购买过程 示例。

// invite all vendors and wait for their proposals
new ParallelForEach<Vendor>
{
    DisplayName = "Get vendor proposals",
    Values = new InArgument<IEnumerable<Vendor>>(ctx =>this.Rfp.Get(ctx).InvitedVendors),
    Body = new ActivityAction<Vendor>()
    {
        Argument = iterationVariableVendor,
        Handler = new Sequence
        {
            Variables = { tmpValue },
            Activities =
            {
                // waits for a vendor proposal (creates a bookmark for a vendor)
                new WaitForVendorProposal
                {
                    VendorId = new LambdaValue<int>(ctx =>iterationVariableVendor.Get(ctx).Id) ,
                    Result = new OutArgument<double>(tmpValue)
                },

                // after the vendor proposal is received, it is registered in the Request for Proposals
                new InvokeMethod
                {
                    TargetObject = new InArgument<RequestForProposal>(ctx =>this.Rfp.Get(ctx)),
                    MethodName = "RegisterProposal",
                    Parameters =
                    {
                        new InArgument<Vendor>(iterationVariableVendor),
                        new InArgument<double>(tmpValue)
                    }
                },
            }
        }
    }
},

注解

嵌入的语句一起计划并异步运行,但除非计划的活动本身是异步 ((例如消息活动、 InvokeMethod或派生自 AsyncCodeActivity) 的活动),否则它们不会在单独的线程上运行,因此每个连续的活动仅在先前计划的活动完成或处于空闲状态时执行。 如果此活动没有任何异步的或进入空闲状态的子活动,则此活动将采用与 ForEach<T> 活动相同的方式执行。

构造函数

ParallelForEach<T>()

创建 ParallelForEach<T> 类的新实例。

属性

Body

ActivityAction 集合中包含的每个值执行一次的 Values

CacheId

获取缓存的标识符,该标识符在工作流定义的作用域内是唯一的。

(继承自 Activity)
CanInduceIdle

获取或设置一个值,该值指示活动是否会使工作流进入空闲状态。

(继承自 NativeActivity)
CompletionCondition

在每个迭代完成后计算。

Constraints

获取可配置的 Constraint 活动的集合,用于为 Activity 提供验证。

(继承自 Activity)
DisplayName

获取或设置用于调试、验证、异常处理和跟踪的可选友好名称。

(继承自 Activity)
Id

获取一个标识符,该标识符在工作流定义的作用域内是唯一的。

(继承自 Activity)
Implementation

活动的执行逻辑。

(继承自 NativeActivity)
ImplementationVersion

获取或设置活动的实现版本。

(继承自 NativeActivity)
Values

值的集合,用作 Body 中所包含活动的每个迭代的参数。

方法

Abort(NativeActivityAbortContext)

在派生类中实现时,采取措施响应要放弃的活动。

(继承自 NativeActivity)
CacheMetadata(ActivityMetadata)

未实现。 请改用 CacheMetadata(NativeActivityMetadata) 方法。

(继承自 NativeActivity)
CacheMetadata(NativeActivityMetadata)

创建并验证活动的自变量、变量、子活动和活动委托的说明。

(继承自 NativeActivity)
Cancel(NativeActivityContext)

在派生类中实现时,运行逻辑以正常方式提前实现活动。

(继承自 NativeActivity)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
Execute(NativeActivityContext)

在派生类中实现时,运行活动的执行逻辑。

(继承自 NativeActivity)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity)

为动态更新创建映射时,将引发事件。

(继承自 NativeActivity)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

为动态更新创建映射时,将引发事件。

(继承自 NativeActivity)
ShouldSerializeDisplayName()

指示是否应序列化 DisplayName 属性。

(继承自 Activity)
ToString()

返回包含 StringIdDisplayNameActivity

(继承自 Activity)
UpdateInstance(NativeActivityUpdateContext)

更新 NativeActivity 的该实例。

(继承自 NativeActivity)

适用于