Workflow Windows工作流:从工作流中启动单独的工作流

Workflow Windows工作流:从工作流中启动单独的工作流,workflow,workflow-foundation,Workflow,Workflow Foundation,这似乎比我最初猜测的要复杂。我有一个工作流,需要在代码中启动另一个工作流。这是怎么做到的?我是否必须首先获取当前工作流实例的WorkflowRuntime的引用?我认为可能就是您要查找的。我曾使用它从其他工作流中启动工作流,效果很好 请注意,新工作流(就像所有工作流一样)是异步执行的,因此“父工作流”将在启动子工作流后直接继续执行 如果您(出于任何原因)无法使用InvokeWorkflowActivity(例如,如果新工作流将从从父工作流调用的服务中的代码启动),您将以某种方式获得工作流运行时实

这似乎比我最初猜测的要复杂。我有一个工作流,需要在代码中启动另一个工作流。这是怎么做到的?我是否必须首先获取当前工作流实例的WorkflowRuntime的引用?

我认为可能就是您要查找的。我曾使用它从其他工作流中启动工作流,效果很好

请注意,新工作流(就像所有工作流一样)是异步执行的,因此“父工作流”将在启动子工作流后直接继续执行

如果您(出于任何原因)无法使用InvokeWorkflowActivity(例如,如果新工作流将从从父工作流调用的服务中的代码启动),您将以某种方式获得工作流运行时实例


我处理此场景的方法是在服务接口中声明一个事件,并在将服务添加到运行时时让工作流主机将侦听器附加到该事件。然后您将拥有一个代码点,可以从服务(通过引发事件)调用该代码点,该代码点还可以访问运行时;然后您就有了启动新工作流所需的一切。

如果您不需要有明确的活动,您可以使用运行时提供的IStartWorkflow服务

另外,如果您需要同步执行,我将从这里开始:


我一直在研究这个问题……看起来我创建了这个对象,分配了TargetWorkflow,分配了参数绑定,然后……事情到底是如何开始执行的?活动在执行时启动工作流;你不需要通过调用某个方法来启动它。谢谢你的帮助。这个方法有好的例子吗?虽然看起来创建的工作流至少达到了“初始化”状态,但从几个控制台判断,我没有看到它启动。我在代码活动中的writeline应该立即达到。