0

J'utilise Visual Studio 2010 Bêta 2 pour prendre une longueur d'avance sur l'apprentissage de WF4. Je travaille dans le concepteur pour créer un fichier xaml. J'ai ajouté une activité ForEach, et à l'intérieur de cette activité ForEach un organigramme qui effectue un traitement conditionnel. Je veux être capable de sortir du ForEach si l'une des conditions est vraie, mais je n'arrive pas à comprendre comment le faire. Dans un code C# derrière le fichier qui serait juste pour émettre une pause; , mais dans le concepteur de flux de travail xaml, je ne vois aucun mécanisme pour rompre avec une boucle. Aucune suggestion?Windows Workflow Foundation 4.0 sortir de ForEach <T> Activité

Répondre

3

Il n'y a pas d'équivalent de coupure dans WF4. Donc soit vous devez commencer à ajouter une logique conditionnelle pour passer les prochaines boucles ou lancer une exception et attraper cela en dehors de ForEach et continuer.

Je suis d'accord que ni est une très belle option de :-(

+0

Je ne suis pas tout à fait vous sur addin g logique conditionnelle pour sauter les prochaines boucles, pouvez-vous donner plus d'informations à ce sujet? –

+1

Il suffit d'ajouter une variable booléenne "Terminé" à l'activité ForEach et à l'intérieur du corps, ajoutez une activité Si la vérification de "Terminé" = false et la définition de Terminé à true lorsque vous voulez arrêter l'exécution. Le reste des éléments sera ignoré. En d'autres termes, tout comme vous le programmeiez s'il n'y avait pas de déclaration de rupture en C#. – Maurice

0

En utilisant un certain temps ou une activité DoWhile en place d'un ForEach peut être la meilleure option pour c'est un peu plus laid des limites sur le contrôle de l'itération de l'activité. Mais fonctionne comme vous le souhaitez pour votre itération

Le conditionnel peut vérifier un booléen, tel que Broken, et une variable de compteur pour le comparer à la longueur de la collection Je ne suis pas sûr que ce soit le meilleur pour votre scénario ou pour la collecte de votre boucle, mais semble être une option viable