ParallelForEach<T> Clase

Definición

Enumera los elementos de una colección y ejecuta una instrucción incrustada para cada elemento de la colección en paralelo.

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

Parámetros de tipo

T

Tipo de los valores proporcionados en la Values colección.

Herencia
ParallelForEach<T>
Atributos

Ejemplos

En el ejemplo de código siguiente se muestra cómo crear una ParallelForEach<T> actividad. Este ejemplo procede del ejemplo de proceso de compra corporativa .

// 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)
                    }
                },
            }
        }
    }
},

Comentarios

Las instrucciones insertadas se programan juntas y se ejecutan de forma asincrónica, pero a menos que las propias actividades programadas sean asincrónicas (como actividades de mensajería, InvokeMethodo actividades que derivan de AsyncCodeActivity), no se ejecutan en subprocesos independientes, por lo que cada actividad sucesiva solo se ejecutará cuando la actividad programada anteriormente se complete o se quede inactiva. Si ninguna de las actividades secundarias de esta actividad es asincrónica o está inactiva, esta actividad se ejecuta de la misma manera que lo hace una ForEach<T> actividad.

Constructores

Nombre Description
ParallelForEach<T>()

Crea una nueva instancia de la ParallelForEach<T> clase .

Propiedades

Nombre Description
Body

ActivityAction que se ejecuta una vez para cada valor contenido en la Values colección.

CacheId

Obtiene el identificador de la memoria caché que es única dentro del ámbito de la definición de flujo de trabajo.

(Heredado de Activity)
CanInduceIdle

Obtiene o establece un valor que indica si la actividad puede hacer que el flujo de trabajo esté inactivo.

(Heredado de NativeActivity)
CompletionCondition

Se evalúa después de que se complete cada iteración.

Constraints

Obtiene una colección de Constraint actividades que se pueden configurar para proporcionar validación para .Activity

(Heredado de Activity)
DisplayName

Obtiene o establece un nombre descriptivo opcional que se usa para la depuración, validación, control de excepciones y seguimiento.

(Heredado de Activity)
Id

Obtiene un identificador que es único en el ámbito de la definición de flujo de trabajo.

(Heredado de Activity)
Implementation

Lógica de ejecución de la actividad.

(Heredado de NativeActivity)
ImplementationVersion

Obtiene o establece la versión de implementación de la actividad.

(Heredado de NativeActivity)
Values

Colección de valores usados como parámetros para cada iteración de la actividad contenida en .Body

Métodos

Nombre Description
Abort(NativeActivityAbortContext)

Cuando se implementa en una clase derivada, realiza acciones en respuesta a la actividad que se anula.

(Heredado de NativeActivity)
CacheMetadata(ActivityMetadata)

Sin implementar. Use el CacheMetadata(NativeActivityMetadata) método en su lugar.

(Heredado de NativeActivity)
CacheMetadata(NativeActivityMetadata)

Crea y valida una descripción de los argumentos, variables, actividades secundarias y delegados de actividad de la actividad.

(Heredado de NativeActivity)
Cancel(NativeActivityContext)

Cuando se implementa en una clase derivada, ejecuta lógica para provocar una finalización temprana correcta de la actividad.

(Heredado de NativeActivity)
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
Execute(NativeActivityContext)

Cuando se implementa en una clase derivada, ejecuta la lógica de ejecución de la actividad.

(Heredado de NativeActivity)
GetHashCode()

Actúa como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity)

Genera un evento al crear un mapa para la actualización dinámica.

(Heredado de NativeActivity)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

Genera un evento al crear un mapa para la actualización dinámica.

(Heredado de NativeActivity)
ShouldSerializeDisplayName()

Indica si la DisplayName propiedad debe serializarse.

(Heredado de Activity)
ToString()

Devuelve un String objeto que contiene y IdDisplayName de Activity.

(Heredado de Activity)
UpdateInstance(NativeActivityUpdateContext)

Actualiza la instancia de NativeActivity.

(Heredado de NativeActivity)

Se aplica a