【问题标题】:Windows Workflow Foundation 4.0 Break Out of ForEach<T> ActivityWindows Workflow Foundation 4.0 突破 ForEach<T> 活动
【发布时间】:2010-01-07 19:38:58
【问题描述】:

我正在使用 Visual Studio 2010 Beta 2 来抢先学习使用 WF4。我正在设计器中创建一个 xaml 文件。我添加了一个 ForEach 活动,并且在该 ForEach 活动内部有一个流程图,可以进行一些条件处理。如果其中一个条件为真,我希望能够摆脱 ForEach,但不知道该怎么做。在文件后面的 C# 代码中,它只是发出中断; ,但在 xaml 工作流设计器中,我看不到任何打破循环的机制。有什么建议吗?

【问题讨论】:

    标签: windows xaml foreach android-activity workflow-foundation-4


    【解决方案1】:

    WF4 中没有等效的中断。因此,要么您需要开始添加条件逻辑以跳过下一个循环,要么抛出异常并在 ForEach 之外捕获并继续。

    我同意这两者都不是一个很好的选择:-(

    【讨论】:

    • 我不太关注您添加条件逻辑以跳过下一个循环,您能否提供更多信息?
    • 只需在 ForEach 活动中添加一个布尔变量“Done”,并在正文中添加一个 If 活动,检查“Done”= false 并在您想停止执行时将 Done 设置为 true。其余项目将被跳过。换句话说,就像你在 C# 中没有 break 语句时编写它一样。
    【解决方案2】:

    使用 While 或 DoWhile 活动代替 ForEach 可能是活动对迭代控制的限制的最佳选择。它有点难看,但可以按照您希望迭代的方式工作。

    条件可以检查一个布尔值,例如Broken,以及一个计数器变量以将其与集合长度进行比较。我不确定这是否最适合您的场景或您循环的集合,但似乎是一个可行的选择。

    【讨论】:

      猜你喜欢
      • 2011-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多