ParallelForEach<T> Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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) |