ParallelForEach<T> クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コレクションの要素を列挙し、コレクションの各要素に対して埋め込みステートメントを並列実行します。
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
Values コレクションで提供される値の型。
- 継承
- 属性
例
ParallelForEach<T> アクティビティを作成するコード サンプルを次に示します。 この例は、 企業の購入プロセス サンプルからのものです。
// 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)
}
},
}
}
}
},
注釈
埋め込みステートメントは一緒にスケジュールされ、非同期的に実行されますが、スケジュールされたアクティビティ自体が非同期でない限り (メッセージング アクティビティ、 InvokeMethod、またはから AsyncCodeActivity派生したアクティビティなど)、個別のスレッドでは実行されないため、連続する各アクティビティは、以前にスケジュールされたアクティビティが完了するかアイドル状態になったときにのみ実行されます。 このアクティビティの子アクティビティがどれも非同期ではないか、アイドル状態にならない場合、このアクティビティは ForEach<T> アクティビティが実行されるのと同様の方法で実行されます。
コンストラクター
ParallelForEach<T>() |
ParallelForEach<T> クラスの新しいインスタンスを作成します。 |
プロパティ
Body |
ActivityAction コレクションに格納されている値ごとに 1 回実行される、Values。 |
CacheId |
ワークフロー定義のスコープ内で一意であるキャッシュの識別子を取得します。 (継承元 Activity) |
CanInduceIdle |
アクティビティがワークフローのアイドル状態を引き起こすことができるかどうかを表す値を取得または設定します。 (継承元 NativeActivity) |
CompletionCondition |
各イテレーションの完了後に評価されます。 |
Constraints |
Constraint に検証を提供するよう構成できる Activity アクティビティのコレクションを取得します。 (継承元 Activity) |
DisplayName |
デバッグ、検証、例外処理、および追跡に使用する省略可能な表示名を取得または設定します。 (継承元 Activity) |
Id |
ワークフロー定義のスコープ内で一意である識別子を取得します。 (継承元 Activity) |
Implementation |
アクティビティの実行ロジック。 (継承元 NativeActivity) |
ImplementationVersion |
アクティビティの実装バージョンを取得または設定します。 (継承元 NativeActivity) |
Values |
Body に格納されているアクティビティのイテレーションごとに、パラメーターとして使用される値のコレクション。 |
メソッド
適用対象
.NET