WF 中的流控制活动

本主题适用于 Windows Workflow Foundation 4。

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

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

流控制活动

活动 说明

DoWhile

执行所包含的活动一次并在条件为 true 时继续执行该操作。

ForEach

对集合中的每个元素按顺序执行嵌入的语句。ForEach 与关键字 foreach 类似,但它作为活动而非语言语句来实现。

If

如果条件为 true,则执行所包含的活动,如果条件为 false,则可以执行 Else 属性中包含的活动。

Parallel

并行执行所包含的活动。

ParallelForEach

对集合中的每个元素并行执行嵌入的语句。

Pick

提供基于事件的控制流建模。

Sequence

按顺序执行所包含的活动。

Switch

基于给定表达式的值,从要执行的多个活动中选择一个活动。

While

条件为 true 时执行所包含的活动。