Compartir a través de


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

El tipo de los valores proporcionados en la colección Values.

Herencia
ParallelForEach<T>
Atributos

Ejemplos

En el siguiente ejemplo de código se muestra la creación de una actividad de la clase ParallelForEach<T>. Este ejemplo procede del ejemplo 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 previamente se complete o deje inactiva. Si ninguna de las actividades secundarias de esta actividad es asincrónica o queda inactiva, esta actividad se ejecuta del mismo modo que una actividad ForEach<T>.

Constructores

ParallelForEach<T>()

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

Propiedades

Body

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

CacheId

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

(Heredado de Activity)
CanInduceIdle

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

(Heredado de NativeActivity)
CompletionCondition

Se evalúa cuando se completa cada iteración.

Constraints

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

(Heredado de Activity)
DisplayName

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

(Heredado de Activity)
Id

Obtiene un identificador que es único dentro del ámbito de definición del 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

La colección de valores usada como parámetros para cada iteración de la actividad contenida en la propiedad Body.

Métodos

Abort(NativeActivityAbortContext)

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

(Heredado de NativeActivity)
CacheMetadata(ActivityMetadata)

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

(Heredado de NativeActivity)
CacheMetadata(NativeActivityMetadata)

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

(Heredado de NativeActivity)
Cancel(NativeActivityContext)

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

(Heredado de NativeActivity)
Equals(Object)

Determina si el objeto especificado es igual que el 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()

Sirve 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 Object actual.

(Heredado de Object)
OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity)

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

(Heredado de NativeActivity)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

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

(Heredado de NativeActivity)
ShouldSerializeDisplayName()

Indica si la propiedad DisplayName se debe serializar.

(Heredado de Activity)
ToString()

Devuelve un objeto String que contiene las propiedades Id y DisplayName del objeto Activity.

(Heredado de Activity)
UpdateInstance(NativeActivityUpdateContext)

Actualiza la instancia de NativeActivity.

(Heredado de NativeActivity)

Se aplica a