2011-05-23 43 views
0

我想要一個工作流,它可以從MSMQ接收多個相同的郵件。WF4:如何設置工作流以接收多個郵件

例子:

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.根據this MSDN post,這應該起作用,但我從來沒有得到這個工作。

解決方案是將並行分支1中的無限while循環?有另一種方法嗎?

回答

1

爲了接收多個更新消息,您必須將該接收置於循環中。您現在設置它的方式允許更新一次,並且Parallel僅等待第二個分支完成。

+0

將接收放在循環中工作。在工作流正在處理先前的「更新」消息時,可能會出現另一個「更新」消息。在這種情況下,工作流程不在Receive上。信息會丟失嗎?還是等到工作流程回到接收? – Mas 2011-05-24 11:32:12

+0

工作流服務具有一個AllowBufferedReceive屬性,允許您在處理進程之前將消息放入隊列中,並且可讓您返回接收並讀取第二個請求。 – Maurice 2011-05-24 14:36:52

相關問題