ParallelForEach<T> Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
- 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) |