Partager via


ParallelForEach<T> Classe

Définition

Énumère les éléments d'une collection et exécute une instruction incorporée pour chaque élément de la collection en parallèle.

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

Paramètres de type

T

Type des valeurs fournies dans la collection Values.

Héritage
ParallelForEach<T>
Attributs

Exemples

L'exemple de code suivant montre comment créer une activité ParallelForEach<T>. Cet exemple provient de l’exemple Processus d’achat d’entreprise .

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

Remarques

Les instructions incorporées sont planifiées ensemble et s’exécutent de manière asynchrone, mais sauf si les activités planifiées elles-mêmes sont asynchrones (telles que les activités de messagerie, InvokeMethodou les activités qui dérivent de AsyncCodeActivity), elles ne s’exécutent pas sur des threads distincts, de sorte que chaque activité successive ne s’exécute que lorsque l’activité planifiée précédemment se termine ou devient inactive. Si aucune des activités enfants de cette activité n'est asynchrone ou ne devient inactive, cette dernière s'exécute comme une activité ForEach<T>.

Constructeurs

ParallelForEach<T>()

Crée une instance de la classe ParallelForEach<T>.

Propriétés

Body

Objet ActivityAction exécuté une fois pour chaque valeur contenue dans la collection Values.

CacheId

Obtient l'identificateur du cache qui est unique dans la portée de la définition de flux de travail.

(Hérité de Activity)
CanInduceIdle

Obtient ou définit une valeur qui indique si l'activité peut faire passer le flux de travail à l'état inactif.

(Hérité de NativeActivity)
CompletionCondition

Propriété évaluée à l'issue de chaque itération.

Constraints

Obtient une collection d'activités Constraint qui peuvent être configurées afin de fournir la validation pour l'objet Activity.

(Hérité de Activity)
DisplayName

Obtient ou définit un nom convivial utilisé pour le débogage, la validation, la gestion des exceptions et le suivi.

(Hérité de Activity)
Id

Obtient l'identificateur qui est unique dans la portée de la définition de flux de travail.

(Hérité de Activity)
Implementation

Logique d'exécution de l'activité.

(Hérité de NativeActivity)
ImplementationVersion

Obtient ou définit la version d'implémentation de l'activité.

(Hérité de NativeActivity)
Values

Collection de valeurs utilisées comme paramètres pour chaque itération de l'activité contenue dans la propriété Body.

Méthodes

Abort(NativeActivityAbortContext)

Lors de l'implémentation dans une classe dérivée, entreprend des actions en réponse à l'activité qui est abandonnée.

(Hérité de NativeActivity)
CacheMetadata(ActivityMetadata)

Non implémenté. Utilisez plutôt la méthode CacheMetadata(NativeActivityMetadata).

(Hérité de NativeActivity)
CacheMetadata(NativeActivityMetadata)

Crée et valide une description des arguments, variables, activités enfants et délégués de l’activité.

(Hérité de NativeActivity)
Cancel(NativeActivityContext)

Lors de l'implémentation dans une classe dérivée, exécute la logique permettant de provoquer une fin anticipée appropriée de l'activité.

(Hérité de NativeActivity)
Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
Execute(NativeActivityContext)

Lors de l’implémentation dans une classe dérivée, exécute la logique d’exécution de l’activité.

(Hérité de NativeActivity)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity)

Déclenche un événement en créant une carte pour la mise à jour dynamique.

(Hérité de NativeActivity)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

Déclenche un événement en créant une carte pour la mise à jour dynamique.

(Hérité de NativeActivity)
ShouldSerializeDisplayName()

Indique si la propriété DisplayName doit être sérialisée.

(Hérité de Activity)
ToString()

Retourne un objet String qui contient les propriétés Id et DisplayName de l'objet Activity.

(Hérité de Activity)
UpdateInstance(NativeActivityUpdateContext)

Met à jour l'instance de NativeActivity.

(Hérité de NativeActivity)

S’applique à