ParallelForEach<T> Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- 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) |