C# 如何触发依赖于其他2个或更多并行活动的活动来完成? 我是工作流基础的新手。我正在尝试构建一个.NET4控制台应用程序。这可以分为若干任务。这是任务的本质 很少有任务是相互独立的,并且可以并行运行 很少有任务会产生两个或多个新任务 很少有任务依赖于并行运行的其他任务的输出,并且只有当它们完成或提供所需的输入时才能启动。 例如

C# 如何触发依赖于其他2个或更多并行活动的活动来完成? 我是工作流基础的新手。我正在尝试构建一个.NET4控制台应用程序。这可以分为若干任务。这是任务的本质 很少有任务是相互独立的,并且可以并行运行 很少有任务会产生两个或多个新任务 很少有任务依赖于并行运行的其他任务的输出,并且只有当它们完成或提供所需的输入时才能启动。 例如,c#,.net,multithreading,workflow-foundation-4,messaging,C#,.net,Multithreading,Workflow Foundation 4,Messaging,这里 任务1、2和3是独立的。 因此可以并行运行 任务4完成后,生成5和6 任务7只能在执行任务时启动 4和2都完成了 虽然我可以使用系统线程和一些消息传递来编写我自己的框架,但是我想知道我是否可以利用工作流基础4。 我浏览了几个工作流示例,但还没有弄清楚当并行运行的父活动完成时如何触发新活动 另外,如果您知道解决上述问题的任何其他方法,请务必让我知道。通常,您会将依赖的任务移到Parralel活动下方,以便您知道所有依赖项都已满足 更新: 从一个序列开始。添加一个并行任务,任务1和4在一侧,任

这里

  • 任务1、2和3是独立的。 因此可以并行运行
  • 任务4完成后,生成5和6
  • 任务7只能在执行任务时启动 4和2都完成了
  • 虽然我可以使用系统线程和一些消息传递来编写我自己的框架,但是我想知道我是否可以利用工作流基础4。 我浏览了几个工作流示例,但还没有弄清楚当并行运行的父活动完成时如何触发新活动


    另外,如果您知道解决上述问题的任何其他方法,请务必让我知道。

    通常,您会将依赖的任务移到Parralel活动下方,以便您知道所有依赖项都已满足

    更新: 从一个序列开始。添加一个并行任务,任务1和4在一侧,任务3在另一侧。下面添加另一个平行线,3个分支包含5、6和7

    但是,如果任务2比任务1+4花费的时间更长,情况就不完全一样了

    [Ankush]那么你的建议是这样的
    是的,我明白。我添加了一张图片。因此,如果我遵循这种方法,我必须创建一个这样的结构。S=序列。P=平行。我希望你能理解这一点。但现在的问题是,任务5和任务6应该放在哪里?在这种情况下,T5和T6的执行会根据T2所花的时间而被阻止。我们可以避免这种情况吗?是的,如果您创建一个自定义活动,它等待一个书签和另一个书签来恢复它,并将几乎所有内容并行放置。添加其中一些,你可以创建任何你想要的混合。不过,工作流程将很难理解。