ParallelForEach<T> Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří výčet prvků kolekce a spustí vložený příkaz pro každý prvek kolekce paralelně.
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 hodnot zadaných v kolekci Values .
- Dědičnost
- Atributy
Příklady
Následující ukázka kódu ukazuje vytvoření ParallelForEach<T> aktivity. Tento příklad je z ukázky podnikového nákupního procesu .
// 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)
}
},
}
}
}
},
Poznámky
Vložené příkazy se plánují společně a spouští asynchronně, ale pokud nejsou samotné naplánované aktivity asynchronní (například aktivity InvokeMethodzasílání zpráv nebo aktivity, které jsou odvozeny AsyncCodeActivity), nespustí se na samostatných vláknech, takže každá následná aktivita se spustí pouze v případě, že se dříve naplánovaná aktivita dokončí nebo přestane být nečinná. Pokud žádná z podřízených aktivit této aktivity není asynchronní nebo nečinná, tato aktivita se provede stejným způsobem jako ForEach<T> aktivita.
Konstruktory
| Name | Description |
|---|---|
| ParallelForEach<T>() |
Vytvoří novou instanci ParallelForEach<T> třídy. |
Vlastnosti
| Name | Description |
|---|---|
| Body |
Provede ActivityAction se jednou pro každou hodnotu obsaženou v kolekci Values . |
| CacheId |
Získá identifikátor mezipaměti, který je jedinečný v rámci oboru definice pracovního postupu. (Zděděno od Activity) |
| CanInduceIdle |
Získá nebo nastaví hodnotu, která označuje, zda aktivita může způsobit, že pracovní postup bude nečinný. (Zděděno od NativeActivity) |
| CompletionCondition |
Vyhodnotí se po dokončení každé iterace. |
| Constraints |
Získá kolekci Constraint aktivit, které lze nakonfigurovat pro zajištění ověření pro Activity. (Zděděno od Activity) |
| DisplayName |
Získá nebo nastaví volitelný popisný název, který se používá pro ladění, ověřování, zpracování výjimek a sledování. (Zděděno od Activity) |
| Id |
Získá identifikátor, který je jedinečný v oboru definice pracovního postupu. (Zděděno od Activity) |
| Implementation |
Logika provádění aktivity. (Zděděno od NativeActivity) |
| ImplementationVersion |
Získá nebo nastaví verzi implementace aktivity. (Zděděno od NativeActivity) |
| Values |
Kolekce hodnot použitých jako parametry pro každou iteraci aktivity obsažené v Bodysouboru . |
Metody
| Name | Description |
|---|---|
| Abort(NativeActivityAbortContext) |
Při implementaci v odvozené třídě provede akce v reakci na aktivitu, která je přerušena. (Zděděno od NativeActivity) |
| CacheMetadata(ActivityMetadata) |
Není implementováno. Místo toho použijte metodu CacheMetadata(NativeActivityMetadata) . (Zděděno od NativeActivity) |
| CacheMetadata(NativeActivityMetadata) |
Vytvoří a ověří popis argumentů, proměnných, podřízených aktivit a delegátů aktivity. (Zděděno od NativeActivity) |
| Cancel(NativeActivityContext) |
Při implementaci v odvozené třídě spustí logiku, která způsobí řádné předčasné dokončení aktivity. (Zděděno od NativeActivity) |
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| Execute(NativeActivityContext) |
Při implementaci v odvozené třídě spustí logiku provádění aktivity. (Zděděno od NativeActivity) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity) |
Vyvolá událost při vytváření mapy pro dynamickou aktualizaci. (Zděděno od NativeActivity) |
| OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity) |
Vyvolá událost při vytváření mapy pro dynamickou aktualizaci. (Zděděno od NativeActivity) |
| ShouldSerializeDisplayName() |
Určuje, zda DisplayName má být vlastnost serializována. (Zděděno od Activity) |
| ToString() |
String Vrátí hodnotu, která obsahuje Id hodnotu a DisplayName hodnotu Activity. (Zděděno od Activity) |
| UpdateInstance(NativeActivityUpdateContext) |
Aktualizuje instanci .NativeActivity (Zděděno od NativeActivity) |