主机应用程序可以与正在执行的工作流程进行通信吗?

时间:2018-04-30 22:06:19

标签: .net workflow-foundation-4

是否可以在应用程序主机与应用程序已启动的当前正在执行的工作流程之间进行通信?

我所拥有的场景是,将使用某些上下文启动工作流...然后进入循环,等待该上下文中的某些内容发生更改。上下文更改需要来自应用程序本身 - 它将有效地更新上下文,以便while循环可以退出并且工作流可以完成。

我在这里发现这篇旧文章看起来像是一个解决方案,但它看起来似乎也在使用已弃用的类,而且我不确定是否支持该功能(例如在.NET 4.6中) :

https://msdn.microsoft.com/en-us/library/dd695719.aspx

1 个答案:

答案 0 :(得分:0)

如果您使用的是WorkflowApplication,则可以将对象传递到工作流程中。

WorkflowApplication _workflowApplication = new WorkflowApplication(new workflowName, iDictionary)

您可以通过IDictionary将ref变量传递到工作流应用程序中。然后,您可以在工作流程之外更改其值,但检查工作流程循环中的值

或者通过IDictionary将委托传递给方法到工作流应用程序中,然后在工作流循环中调用委托并对返回值进行操作。