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> 相同的方式執行。

建構函式

名稱 Description
ParallelForEach<T>()

建立一個新的類別實例 ParallelForEach<T>

屬性

名稱 Description
Body

ActivityAction該 that 對集合中包含的Values每個值執行一次。

CacheId

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

(繼承來源 Activity)
CanInduceIdle

取得或設定一個值,指示該活動是否會導致工作流程進入閒置狀態。

(繼承來源 NativeActivity)
CompletionCondition

每次迭代完成後評估。

Constraints

取得一組 Constraint 可設定以驗證 的 Activity活動集合。

(繼承來源 Activity)
DisplayName

取得或設定一個可選的友善名稱,用於除錯、驗證、異常處理及追蹤。

(繼承來源 Activity)
Id

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

(繼承來源 Activity)
Implementation

活動的執行邏輯。

(繼承來源 NativeActivity)
ImplementationVersion

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

(繼承來源 NativeActivity)
Values

用於每次活動迭代所包含 Body的參數的值集合。

方法

名稱 Description
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()

回傳 String 包含 Id 的 和 DisplayNameActivity的 a。

(繼承來源 Activity)
UpdateInstance(NativeActivityUpdateContext)

更新 的 NativeActivity實例。

(繼承來源 NativeActivity)

適用於