1

团队:

我需要从 WF 服务 (XAMLX) 异步调用 WF 活动 (XAML)。我已经在引用 Microsoft.Activities.Extensions 框架,并且我在状态机的 Platform Update 1 上运行——所以如果解决方案已经在其中一个库中,我就准备好了!

现在,我需要异步调用该活动 (XAML),但它有一个输出参数,需要在服务 (XAMLX) 中设置一个变量。有人可以为我提供解决方案吗?

谢谢!


* 更新 *

现在我可以发图片了,*我想*,因为我有足够的声望!让我在这里放几个,试着更好地解释我的问题。第一张图片是具有两个工作流入口点的 WF 服务——第二张是工作流本身。

此工作流是一种不断重启自身的编排机制,并具有一些故障转移机制(例如,在错误阈值时退出和软退出),以便我们可以使用 WF 管理我们的持久事务队列!

现在,当它只是一个 WF 服务时,我们的工作流程运行良好,因为我们可以调用该服务,获取响应并将该响应的值发送回触发器中的另一个入口点以发出软退出。但是,出现了一个新要求,要求我们将工作流本身设为另一个项目中的 WF 活动,并在 WF 服务应用程序项目中具有接收/发送-回复序列。

然而,我们需要能够启动这个工作流并忘记它——然后让它知道以后需要软退出——但是由于 WF 在单个线程上执行,这在最好的。

WF 服务顺序

WF活动顺序

4

1 回答 1

2

严格来说,在 XAML 活动中,Parallel 和 ParallelForEach 是您执行异步的方式。

工作流调度程序只使用一个线程(很像 UI),因此任何正在运行的活动通常都在同一个线程上运行,除非它实现了 AsyncCodeActivity,在这种情况下,您只需在等待时将调度程序线程交还给运行时来自您的 AsyncCodeActivity 实现正在调用的任何异步代码的回调。

因此,您确定这是您想要实现的目标吗?您的意思是在发送初始响应后要运行它吗?在这种情况下,将您的活动放在发送回复之后。

如果这些建议不能回答您的问题,请提供更多信息。/

更新: 提出的原始要求(将实现与服务接收/发送活动分开)实际上可以通过将目标活动托管为服务来解决。请参阅以下链接 http://blog.petegoo.com/index.php/2011/09/02/building-an-enterprise-workflow-system-with-wf4/

于 2012-02-15T03:11:23.610 回答