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 nell'insieme Values .
- Ereditarietà
- Attributi
Esempio
Nell'esempio di codice seguente viene illustrata la creazione di un'attività ParallelForEach<T> . Questo esempio proviene 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 attività di messaggistica, InvokeMethodo 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 inattiva, questa attività viene eseguita nello stesso modo in cui viene eseguita un'attività ForEach<T> .
Costruttori
| Nome | Descrizione |
|---|---|
| ParallelForEach<T>() |
Crea una nuova istanza della ParallelForEach<T> classe . |
Proprietà
| Nome | Descrizione |
|---|---|
| Body |
Oggetto ActivityAction eseguito una volta per ogni valore contenuto nella Values raccolta. |
| CacheId |
Ottiene l'identificatore della cache univoca nell'ambito della definizione del flusso di lavoro. (Ereditato da Activity) |
| CanInduceIdle |
Ottiene o imposta un valore che indica se l'attività può causare l'inattività del flusso di lavoro. (Ereditato da NativeActivity) |
| CompletionCondition |
Valutato al termine di ogni iterazione. |
| Constraints |
Ottiene una raccolta di Constraint attività che possono essere configurate per fornire la convalida per .Activity (Ereditato da Activity) |
| DisplayName |
Ottiene o imposta un nome descrittivo facoltativo utilizzato per il debug, la convalida, la gestione delle eccezioni e il rilevamento. (Ereditato da Activity) |
| Id |
Ottiene un identificatore 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 |
Raccolta di valori utilizzati come parametri per ogni iterazione dell'attività contenuta in Body. |
Metodi
| Nome | Descrizione |
|---|---|
| Abort(NativeActivityAbortContext) |
Se implementato in una classe derivata, esegue azioni in risposta all'interruzione dell'attività. (Ereditato da NativeActivity) |
| CacheMetadata(ActivityMetadata) |
Non implementata. Usare invece il CacheMetadata(NativeActivityMetadata) metodo . (Ereditato da NativeActivity) |
| CacheMetadata(NativeActivityMetadata) |
Crea e convalida una descrizione degli argomenti, delle variabili, delle attività figlio e dei delegati di attività dell'attività. (Ereditato da NativeActivity) |
| Cancel(NativeActivityContext) |
Se implementato in una classe derivata, esegue la logica per causare il completamento anticipato normale dell'attività. (Ereditato da NativeActivity) |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| Execute(NativeActivityContext) |
Se 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 il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity) |
Genera un evento durante la creazione di una mappa per l'aggiornamento dinamico. (Ereditato da NativeActivity) |
| OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity) |
Genera un evento durante la creazione di una mappa per l'aggiornamento dinamico. (Ereditato da NativeActivity) |
| ShouldSerializeDisplayName() |
Indica se la DisplayName proprietà deve essere serializzata. (Ereditato da Activity) |
| ToString() |
Restituisce un String oggetto contenente l'oggetto Id e DisplayName dell'oggetto Activity. (Ereditato da Activity) |
| UpdateInstance(NativeActivityUpdateContext) |
Aggiorna l'istanza di NativeActivity. (Ereditato da NativeActivity) |