2011-08-14 97 views
1

多线程我知道一个工作流实例在单个线程同时运行。我有一个在挑选活动中有两个接收活动的工作流程。消息关联被实现以确保对这两个活动的请求应该被路由到同一个实例。实现工作流

在第一接收分支我有一个平行的活动,在一个分支延迟活动。并行活动将完成延迟结束或标志设置为true。

当并行活动正在等待条件满足我如何可以接收来自第二接收活动电话?因为只有通过它的分支才能将该标志设置为真。我在等你的建议或想法。

回答

0

不太清楚你正试图在这里实现什么。

如果你有2支选号和两个分支包含接收它将继续您收到的2个消息2个接收活动等待后。另一个将被取消,并没有收到任何东西。一个接收处于并行状态的事实在这里没有任何作用。因此,除非这是循环的,否则您的工作流程中不会收到多个WCF消息。

+0

有一个while循环和工作流实例等待它仍然得到所有的信息。我感觉WF 4.0中的并行编程非常困难,我无法设计一个简单的多线程工作流程。可能是我没有在正确的方向接近问题。 – VJAI

+0

正如您在问题中正确指出的那样,工作流程中没有多线程执行。不过,因为所有事情都是异步安排的,所以排队。因此,如果工作流程循环回到具有接收活动的相同Pick,则两个WCF请求几乎在第一个将被处理的同时到达,第二个将被排队并处理。 – Maurice

+0

感谢您的回复。当新的请求到达第二个接收分支时,是否可以取消延迟活动,以便事件进入单个线程。现在发生的事情是,当第一接收分支得到奏响了由延迟活动我也无法通过他们,你说排队的第二分支接收请求,但一旦延迟是在排队的请求越来越处理。我只想取消延迟并处理请求。 – VJAI