Udostępnij za pośrednictwem


ParallelForEach<T> Klasa

Definicja

Wylicza elementy kolekcji i wykonuje instrukcję osadzoną dla każdego elementu kolekcji równolegle.

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

Parametry typu

T

Typ wartości podanych w kolekcji Values .

Dziedziczenie
ParallelForEach<T>
Atrybuty

Przykłady

Poniższy przykładowy kod przedstawia tworzenie ParallelForEach<T> działania. Ten przykład pochodzi z przykładu Proces zakupu firmowego .

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

Uwagi

Instrukcje osadzone są zaplanowane razem i są uruchamiane asynchronicznie, ale jeśli zaplanowane działania same w sobie nie są asynchroniczne (takie jak działania obsługi komunikatów, InvokeMethodlub działania pochodzące z AsyncCodeActivityprogramu ), nie są uruchamiane w osobnych wątkach, więc każde kolejne działanie będzie wykonywane tylko wtedy, gdy wcześniej zaplanowane działanie zakończy się lub przejdzie w stan bezczynności. Jeśli żadne z działań podrzędnych tego działania nie są asynchroniczne lub bezczynne, to działanie jest wykonywane w taki sam sposób, jak działanie ForEach<T> .

Konstruktory

ParallelForEach<T>()

Tworzy nowe wystąpienie klasy ParallelForEach<T>.

Właściwości

Body

Wartość jest wykonywana ActivityAction raz dla każdej wartości zawartej w kolekcji Values .

CacheId

Pobiera identyfikator pamięci podręcznej, która jest unikatowa w zakresie definicji przepływu pracy.

(Odziedziczone po Activity)
CanInduceIdle

Pobiera lub ustawia wartość wskazującą, czy działanie może spowodować, że przepływ pracy stanie się bezczynny.

(Odziedziczone po NativeActivity)
CompletionCondition

Obliczane po zakończeniu każdej iteracji.

Constraints

Pobiera kolekcję Constraint działań, które można skonfigurować w celu zapewnienia weryfikacji dla elementu Activity.

(Odziedziczone po Activity)
DisplayName

Pobiera lub ustawia opcjonalną przyjazną nazwę używaną do debugowania, walidacji, obsługi wyjątków i śledzenia.

(Odziedziczone po Activity)
Id

Pobiera identyfikator, który jest unikatowy w zakresie definicji przepływu pracy.

(Odziedziczone po Activity)
Implementation

Logika wykonywania działania.

(Odziedziczone po NativeActivity)
ImplementationVersion

Pobiera lub ustawia wersję implementacji działania.

(Odziedziczone po NativeActivity)
Values

Kolekcja wartości używanych jako parametry dla każdej iteracji działania zawartego w obiekcie Body.

Metody

Abort(NativeActivityAbortContext)

Po zaimplementowaniu w klasie pochodnej akcje są wykonywane w odpowiedzi na przerwane działanie.

(Odziedziczone po NativeActivity)
CacheMetadata(ActivityMetadata)

Nie zaimplementowano. CacheMetadata(NativeActivityMetadata) Zamiast tego użyj metody .

(Odziedziczone po NativeActivity)
CacheMetadata(NativeActivityMetadata)

Tworzy i weryfikuje opis argumentów, zmiennych, działań podrzędnych i delegatów działań.

(Odziedziczone po NativeActivity)
Cancel(NativeActivityContext)

Po zaimplementowaniu w klasie pochodnej logika uruchamia logikę, aby spowodować pomyślne wczesne ukończenie działania.

(Odziedziczone po NativeActivity)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
Execute(NativeActivityContext)

Po zaimplementowaniu w klasie pochodnej uruchamia logikę wykonywania działania.

(Odziedziczone po NativeActivity)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity)

Zgłasza zdarzenie podczas tworzenia mapy aktualizacji dynamicznej.

(Odziedziczone po NativeActivity)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

Zgłasza zdarzenie podczas tworzenia mapy aktualizacji dynamicznej.

(Odziedziczone po NativeActivity)
ShouldSerializeDisplayName()

Wskazuje, czy DisplayName właściwość powinna być serializowana.

(Odziedziczone po Activity)
ToString()

Zwraca obiekt String , który zawiera elementy Id i DisplayName .Activity

(Odziedziczone po Activity)
UpdateInstance(NativeActivityUpdateContext)

Aktualizacje wystąpienie klasy NativeActivity.

(Odziedziczone po NativeActivity)

Dotyczy