WF 中的控制流活动

.NET Framework 4.6.1 提供用于控制工作流中执行流的多个活动。 其中一些活动(如 SwitchIf)实现与编程环境(如 Visual C#)类似的流控制结构,而其他活动(如 Pick)建立新编程结构的模型。

请注意,当诸如 ParallelParallelForEach 活动之类的活动计划同时执行多个子活动时,一个工作流只能使用单个线程。 这些活动的每个子活动都按顺序执行,并在前面的活动完成或变为空闲之前,不会执行后续活动。 因此,这些活动对于某些应用程序来说最有用,这些应用程序中的多个可能阻止执行的活动必须采用交错的方式执行。 如果这些活动中没有任何子活动变为空闲,则 Parallel 活动执行方式就像 Sequence 活动一样,并且 ParallelForEach 活动执行方式就像 ForEach 活动一样。 然而,如果使用异步活动(例如从 AsyncCodeActivity 派生的活动)或消息活动,则控件制将传递给下一个分支,同时子活动等待其要接收的消息或其要完成的异步工作。

流控制活动

活动 说明
DoWhile 执行所包含的活动一次并在条件为 true 时继续执行该操作。
ForEach<T> 对集合中的每个元素按顺序执行嵌入的语句。 ForEach<T> 与关键字 foreach 类似,但它作为活动而非语言语句来实现。
If 如果条件为 true,则执行所包含的活动,如果条件为 Else,则可以执行 false 属性中包含的活动。
Parallel 并行执行所包含的活动。
ParallelForEach<T> 对集合中的每个元素并行执行嵌入的语句。
Pick 提供基于事件的控制流建模。
PickBranch 表示 Pick 活动中的可能执行路径。
Sequence 按顺序执行所包含的活动。
Switch<T> 基于给定表达式的值,从要执行的多个活动中选择一个活动。
While 条件为 true 时执行所包含的活动。