ParallelForEach<T> Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
A gyűjtemény elemeinek számbavétele és beágyazott utasítás végrehajtása a gyűjtemény minden eleméhez párhuzamosan.
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
Típusparaméterek
- T
A gyűjteményben Values megadott értékek típusa.
- Öröklődés
- Attribútumok
Példák
Az alábbi kódminta egy ParallelForEach<T> tevékenység létrehozását mutatja be. Ez a példa a vállalati vásárlási folyamat mintájából származik.
// 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)
}
},
}
}
}
},
Megjegyzések
A beágyazott utasítások egymáshoz vannak ütemezve, és aszinkron módon futnak, de ha maguk az ütemezett tevékenységek nem aszinkronok (például üzenetkezelési tevékenységek, InvokeMethodvagy ezekből AsyncCodeActivityszármazó tevékenységek), nem futnak külön szálakon, így minden egymást követő tevékenység csak akkor lesz végrehajtva, ha a korábban ütemezett tevékenység befejeződött vagy tétlenül fut. Ha a tevékenység egyik gyermektevékenysége sem aszinkron vagy tétlen, akkor ez a tevékenység ugyanúgy fut, mint egy ForEach<T> tevékenység.
Konstruktorok
| Name | Description |
|---|---|
| ParallelForEach<T>() |
Létrehozza az osztály új példányát ParallelForEach<T> . |
Tulajdonságok
| Name | Description |
|---|---|
| Body |
A ActivityAction rendszer ezt egyszer hajtja végre a Values gyűjteményben található összes értékhez. |
| CacheId |
Lekéri a munkafolyamat-definíció hatókörén belül egyedi gyorsítótár azonosítóját. (Öröklődés forrása Activity) |
| CanInduceIdle |
Lekéri vagy beállít egy értéket, amely jelzi, hogy a tevékenység okozhatja-e a munkafolyamat tétlenségét. (Öröklődés forrása NativeActivity) |
| CompletionCondition |
Az egyes iterációk befejeződése után kiértékelve. |
| Constraints |
Lekéri azoknak a tevékenységeknek a gyűjteményét Constraint , amelyek konfigurálhatók úgy, hogy érvényesítést biztosítsanak a Activity. (Öröklődés forrása Activity) |
| DisplayName |
Lekéri vagy beállítja a hibakereséshez, az ellenőrzéshez, a kivételkezeléshez és a nyomon követéshez használt rövid nevet. (Öröklődés forrása Activity) |
| Id |
A munkafolyamat-definíció hatókörében egyedi azonosítót kap. (Öröklődés forrása Activity) |
| Implementation |
A tevékenység végrehajtási logikája. (Öröklődés forrása NativeActivity) |
| ImplementationVersion |
Lekéri vagy beállítja a tevékenység implementációs verzióját. (Öröklődés forrása NativeActivity) |
| Values |
A paraméterként használt értékek gyűjteménye a tevékenység minden iterációjában.Body |
Metódusok
| Name | Description |
|---|---|
| Abort(NativeActivityAbortContext) |
Származtatott osztályban való implementáláskor a megszakított tevékenységre reagálva hajt végre műveleteket. (Öröklődés forrása NativeActivity) |
| CacheMetadata(ActivityMetadata) |
Nincs implementálva. Használja inkább a metódust CacheMetadata(NativeActivityMetadata) . (Öröklődés forrása NativeActivity) |
| CacheMetadata(NativeActivityMetadata) |
Létrehozza és ellenőrzi a tevékenység argumentumainak, változóinak, gyermektevékenységeinek és tevékenységdelegáltjainak leírását. (Öröklődés forrása NativeActivity) |
| Cancel(NativeActivityContext) |
Származtatott osztályban implementálva a logika futtatásával a tevékenység kecses korai befejezését okozhatja. (Öröklődés forrása NativeActivity) |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| Execute(NativeActivityContext) |
Származtatott osztályban implementálva futtatja a tevékenység végrehajtási logikáját. (Öröklődés forrása NativeActivity) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity) |
Eseményt hoz létre a dinamikus frissítés térképének létrehozásakor. (Öröklődés forrása NativeActivity) |
| OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity) |
Eseményt hoz létre a dinamikus frissítés térképének létrehozásakor. (Öröklődés forrása NativeActivity) |
| ShouldSerializeDisplayName() |
Azt jelzi, hogy a DisplayName tulajdonság szerializálva legyen-e. (Öröklődés forrása Activity) |
| ToString() |
Olyan értéket String ad vissza, amely tartalmazza az Id és DisplayName a Activity. (Öröklődés forrása Activity) |
| UpdateInstance(NativeActivityUpdateContext) |
Frissíti a példányt NativeActivity. (Öröklődés forrása NativeActivity) |