Classe ParallelForEach<T>

.NET Framework (current version)
 

Data di pubblicazione: ottobre 2016

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

Spazio dei nomi:   System.Activities.Statements
Assembly:  System.Activities (in System.Activities.dll)

System.Object
  System.Activities.Activity
    System.Activities.NativeActivity
      System.Activities.Statements.ParallelForEach<T>

[ContentPropertyAttribute("Body")]
public sealed class ParallelForEach<T> : NativeActivity

Parametri tipo

T

Tipo dei valori forniti nella raccolta Values.

NomeDescrizione
System_CAPS_pubmethodParallelForEach<T>()

Crea una nuova istanza della classe ParallelForEach<T>.

NomeDescrizione
System_CAPS_pubpropertyBody

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

System_CAPS_protpropertyCacheId

Ottiene l'identificatore della cache che è univoco all'interno dell'ambito della definizione del flusso di lavoro.(Ereditato da Activity.)

System_CAPS_pubpropertyCompletionCondition

Valutato al termine di ogni iterazione.

System_CAPS_pubpropertyDisplayName

Ottiene o imposta un nome descrittivo facoltativo utilizzato per debug, convalida, gestione delle eccezioni e rilevamento.(Ereditato da Activity.)

System_CAPS_pubpropertyId

Ottiene un identificatore che è univoco nell'ambito della definizione del flusso di lavoro.(Ereditato da Activity.)

System_CAPS_protpropertyImplementationVersion

Ottiene o imposta la versione di implementazione dell'attività.(Ereditato da NativeActivity.)

System_CAPS_pubpropertyValues

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

NomeDescrizione
System_CAPS_pubmethodEquals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.(Ereditato da Object.)

System_CAPS_pubmethodGetHashCode()

Funge da funzione hash predefinita.(Ereditato da Object.)

System_CAPS_pubmethodGetType()

Ottiene l'oggetto Type dell'istanza corrente.(Ereditato da Object.)

System_CAPS_pubmethodShouldSerializeDisplayName()

Indica se la proprietà DisplayName deve essere serializzata.(Ereditato da Activity.)

System_CAPS_pubmethodToString()

Restituisce un String che contiene il Id e il DisplayName del Activity.(Ereditato da Activity.)

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

Nell'esempio di codice riportato di seguito viene illustrata la creazione di un'attività ParallelForEach<T>. Questo esempio si trova il processo di acquisto aziendale esempio.

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

.NET Framework
Disponibile da 4.0

I membri statici pubblici ( Condiviso in Visual Basic) di questo tipo è thread safe. Non tutti i membri di istanza sono garantiti come thread safe.

Torna all'inizio
Mostra: