.net 4.0 WF4:如何设置工作流以接收多条消息

.net 4.0 WF4:如何设置工作流以接收多条消息,.net-4.0,workflow-foundation-4,.net 4.0,Workflow Foundation 4,我想要一个工作流,它可以从MSMQ接收多条相同的消息 例如: Receive: CreateWorkflow (CanCreateInstance=True) Do Something... Parallel (CompletionCondition=ExitParallel) Parallel Branch 1 Receive: Update (CanCreateInstance=False, Use correlation) Process...

我想要一个工作流,它可以从MSMQ接收多条相同的消息

例如:

Receive: CreateWorkflow (CanCreateInstance=True)
Do Something...
Parallel (CompletionCondition=ExitParallel)
    Parallel Branch 1
        Receive: Update (CanCreateInstance=False, Use correlation)
        Process...
    Parallel Branch 2
        Receive: Finish (CanCreateInstance=False, Use correlation)
        Set ExitParallel=True
我希望我的工作流能够接收多条更新消息。但是,在此设置中,它只能接收1。据我所知,这应该行得通,但我从来没让它行得通


在并行分支1中放置无限while循环的解决方案是什么?还有其他方法吗?

为了接收多条更新消息,您必须将接收消息放入一个循环中。您现在设置它的方式允许更新一次,并行只等待第二个分支完成。

将接收放入循环工作。工作流处理以前的“更新”消息时,可能会出现另一条“更新”消息。在这种情况下,工作流不在接收上。信息会丢失吗?或者消息是否等待工作流返回到接收?工作流服务具有AllowBufferedReceive属性,允许您在消息被处理之前将其放入队列,并允许您返回到接收并读取第二个请求。