Windows Workflow Foundation 4.0 Выходит за рамки ForEach<T> Активность
-
19-09-2019 - |
Вопрос
Я использую Visual Studio 2010 Beta 2, чтобы начать обучение использованию WF4.Я работаю в конструкторе над созданием файла xaml.Я добавил действие ForEach , и внутри этого действия ForEach есть блок-схема, которая выполняет некоторую условную обработку.Я хочу иметь возможность вырваться из ForEach, если одно из условий выполнено, но не могу понять, как это сделать.В коде C #, лежащем в основе файла, это было бы просто для того, чтобы выдать break;, но в конструкторе рабочих процессов xaml я не вижу никакого механизма для выхода из цикла.Есть какие-нибудь предложения?
Решение
В WF4 нет эквивалента разрыва.Итак, либо вам нужно начать добавлять условную логику, чтобы пропустить следующие циклы, либо создать исключение и перехватить его за пределами ForEach и продолжить.
И я согласен, что ни то, ни другое не является очень хорошим вариантом:-(
Другие советы
Использование действия While или DoWhile вместо ForEach может быть лучшим вариантом с учетом ограничений действия на управление итерациями.Это немного уродливее, но работает именно так, как вы хотите от своей итерации.
Условие может проверять bool, например Broken
, и переменная счетчика для сравнения ее с длиной коллекций.Я не уверен, что это лучше всего подходит для вашего сценария или для коллекции, которую вы зацикливаете, но кажется жизнеспособным вариантом.