共用方式為


ParallelForEach<T> 類別

定義

列舉集合項目,並針對集合的每個項目平行執行內嵌陳述式。

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>
屬性

範例

下列程式碼範例將示範如何建立 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 集合中包含的每個值執行一次的 Values

CacheId

取得工作流程定義範圍內的唯一快取識別碼。

(繼承來源 Activity)
CanInduceIdle

取得或設定值,這個值指出此活動是否會造成工作流程變為閒置。

(繼承來源 NativeActivity)
CompletionCondition

在每個反覆運算完成之後評估。

Constraints

取得 Constraint 活動的集合,這些活動可以設定為提供 Activity 的驗證。

(繼承來源 Activity)
DisplayName

取得或設定選擇性的易記名稱,這個名稱會用於偵錯、驗證、例外狀況處理及追蹤。

(繼承來源 Activity)
Id

取得工作流程定義範圍內的唯一識別碼。

(繼承來源 Activity)
Implementation

活動的執行邏輯。

(繼承來源 NativeActivity)
ImplementationVersion

取得或設定活動的實作版本。

(繼承來源 NativeActivity)
Values

做為 Body 包含的每個活動反覆項目之參數使用的值集合。

方法

Abort(NativeActivityAbortContext)

在衍生類別中實作時,會採取動作以回應中止的活動。

(繼承來源 NativeActivity)
CacheMetadata(ActivityMetadata)

未實作。 請改用 CacheMetadata(NativeActivityMetadata) 方法。

(繼承來源 NativeActivity)
CacheMetadata(NativeActivityMetadata)

建立並驗證活動引數、變數、子活動和活動委派的描述。

(繼承來源 NativeActivity)
Cancel(NativeActivityContext)

在衍生類別中實作時,執行邏輯以便在非失誤性的狀況下及早完成活動。

(繼承來源 NativeActivity)
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
Execute(NativeActivityContext)

在衍生類別中實作時,執行活動的執行邏輯。

(繼承來源 NativeActivity)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity)

建立動態更新的對應時引發事件。

(繼承來源 NativeActivity)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

建立動態更新的對應時引發事件。

(繼承來源 NativeActivity)
ShouldSerializeDisplayName()

指出是否應序列化 DisplayName 屬性。

(繼承來源 Activity)
ToString()

傳回包含 的 和 的 。

(繼承來源 Activity)
UpdateInstance(NativeActivityUpdateContext)

更新 NativeActivity 的執行個體。

(繼承來源 NativeActivity)

適用於