Activités de flux de contrôle dans WF
.NET Framework 4.6.1 fournit plusieurs activités pour le contrôle de flux d’exécution dans un workflow. Quelques-unes de ces activités (comme Switch
et If
) implémentent des structures de contrôle de flux semblables à celles utilisées dans les environnements de programmation tels que Visual C#, alors que d’autres modélisent de nouvelles structures de programmation (comme Pick
).
Notez que lorsque les activités telles que les activités Parallel
et ParallelForEach
planifient plusieurs activités enfants pour qu'elles s'exécutent simultanément, seul un thread unique est utilisé pour un workflow. Chaque activité enfant de ces activités s'exécute séquentiellement et les activités consécutives ne s'exécutent pas tant que d'anciennes activités ne soient terminées ou ne deviennent inactives. Par conséquent, ces activités sont très utiles pour les applications dans lesquelles plusieurs activités potentielles de blocage doivent s'exécuter de façon entrelacée. Si aucune des activités enfants de ces activités n'est inactive, une activité Parallel
s'exécute juste comme une activité Sequence
, et une activité ParallelForEach
s'exécute juste comme une activité ForEach
. Si, toutefois, des activités asynchrones (telles que des activités qui dérivent de AsyncCodeActivity) ou des activités de messagerie sont utilisées, le contrôle passe à la branche suivante alors que l’activité enfant attend son message à accepter ou son travail asynchrone à exécuter.
Activités de contrôle de flux
Activité | Description |
---|---|
DoWhile | Exécute une fois les activités contenues et continue de le faire jusqu'à ce qu'une condition soit true . |
ForEach<T> | Exécute une instruction incorporée en séquence pour chaque élément d’une collection. ForEach<T> est semblable au mot clé foreach , mais est implémenté comme une activité et non comme une instruction de langage. |
If | Exécute des activités contenues si une condition est true , et peut exécuter des activités contenues dans la propriété Else si la condition est false . |
Parallel | Exécute des activités contenues en parallèle. |
ParallelForEach<T> | Exécute une instruction incorporée en parallèle pour chaque élément d'une collection. |
Pick | Fournit une modélisation de flux de contrôle reposant sur des événements. |
PickBranch | Représente un chemin d'exécution potentiel dans une activité Pick. |
Sequence | Exécute des activités contenues dans l'ordre. |
Switch<T> | Choisit de traiter une activité parmi un certain nombre d'activités, en fonction de la valeur de l'expression donnée. |
While | Exécute des activités contenues tant qu'une condition est true . |