ParallelForEach<T> Classe

Definizione

Enumera gli elementi di una raccolta ed esegue un'istruzione incorporata per ogni elemento della raccolta in parallelo.

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

Parametri di tipo

T

Tipo dei valori forniti nella raccolta Values.

Ereditarietà
ParallelForEach<T>
Attributi

Esempio

Nell'esempio di codice riportato di seguito viene illustrata la creazione di un'attività ParallelForEach<T>. Questo esempio è tratto dall'esempio Processo di acquisto aziendale .

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

Commenti

Le istruzioni incorporate vengono pianificate insieme ed eseguite in modo asincrono, ma a meno che le attività pianificate stesse non siano asincrone (ad esempio le attività di messaggistica, InvokeMethodo le attività che derivano da AsyncCodeActivity), non vengono eseguite su thread separati, quindi ogni attività successiva verrà eseguita solo quando l'attività pianificata in precedenza viene completata o inattiva. Se nessuna delle attività figlio di questa attività è asincrona o diventa inattiva, tale attività viene eseguita come ForEach<T>.

Costruttori

ParallelForEach<T>()

Crea una nuova istanza della classe ParallelForEach<T>.

Proprietà

Body

L'oggetto ActivityAction eseguito una volta per ogni valore contenuto nella raccolta Values.

CacheId

Ottiene l'identificatore della cache che è univoco all'interno dell'ambito della definizione del flusso di lavoro.

(Ereditato da Activity)
CanInduceIdle

Ottiene o imposta un valore che indica se l'attività può determinare che il flusso di lavoro diventi inattivo.

(Ereditato da NativeActivity)
CompletionCondition

Valutato al termine di ogni iterazione.

Constraints

Ottiene una raccolta di attività Constraint che possono essere configurate per fornire la convalida per Activity.

(Ereditato da Activity)
DisplayName

Ottiene o imposta un nome descrittivo facoltativo utilizzato per debug, convalida, gestione delle eccezioni e rilevamento.

(Ereditato da Activity)
Id

Ottiene un identificatore che è univoco nell'ambito della definizione del flusso di lavoro.

(Ereditato da Activity)
Implementation

Logica di esecuzione dell'attività.

(Ereditato da NativeActivity)
ImplementationVersion

Ottiene o imposta la versione di implementazione dell'attività.

(Ereditato da NativeActivity)
Values

La raccolta di valori usata come parametri per ogni iterazione dell'attività contenuta in Body.

Metodi

Abort(NativeActivityAbortContext)

Quando è implementato in una classe derivata, intraprende azioni in risposta all'attività interrotta.

(Ereditato da NativeActivity)
CacheMetadata(ActivityMetadata)

Non implementato. Al suo posto usa il metodo CacheMetadata(NativeActivityMetadata).

(Ereditato da NativeActivity)
CacheMetadata(NativeActivityMetadata)

Crea e convalida una descrizione degli argomenti dell'attività, delle variabili, delle attività figlio e dei delegati di attività.

(Ereditato da NativeActivity)
Cancel(NativeActivityContext)

In caso di implementazione in una classe derivata, è in esecuzione logico provocare primo completamento aggraziato dell'attività.

(Ereditato da NativeActivity)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Execute(NativeActivityContext)

Quando è implementato in una classe derivata, esegue la logica di esecuzione dell'attività.

(Ereditato da NativeActivity)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity)

Genera un evento quando si crea un mapping per l'aggiornamento dinamico.

(Ereditato da NativeActivity)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

Genera un evento quando si crea un mapping per l'aggiornamento dinamico.

(Ereditato da NativeActivity)
ShouldSerializeDisplayName()

Indica se la proprietà DisplayName deve essere serializzata.

(Ereditato da Activity)
ToString()

Restituisce un String che contiene il Id e il DisplayName del Activity.

(Ereditato da Activity)
UpdateInstance(NativeActivityUpdateContext)

Aggiorna l'istanza di NativeActivity.

(Ereditato da NativeActivity)

Si applica a