2011-08-14 94 views
1

多線程我知道一個工作流實例在單個線程同時運行。我有一個在挑選活動中有兩個接收活動的工作流程。消息關聯被實現以確保對這兩個活動的請求應該被路由到同一個實例。實現工作流

在第一接收分支我有一個平行的活動,在一個分支延遲活動。並行活動將完成延遲結束或標誌設置爲true。

當並行活動正在等待條件滿足我如何可以接收來自第二接收活動電話?因爲只有通過它的分支才能將該標誌設置爲真。我在等你的建議或想法。

回答

0

不太清楚你正試圖在這裏實現什麼。

如果你有2支選號和兩個分支包含接收它將繼續您收到的2個消息2個接收活動等待後。另一個將被取消,並沒有收到任何東西。一個接收處於並行狀態的事實在這裏沒有任何作用。因此,除非這是循環的,否則您的工作流程中不會收到多個WCF消息。

+0

有一個while循環和工作流實例等待它仍然得到所有的信息。我感覺WF 4.0中的並行編程非常困難,我無法設計一個簡單的多線程工作流程。可能是我沒有在正確的方向接近問題。 – VJAI

+0

正如您在問題中正確指出的那樣,工作流程中沒有多線程執行。不過,因爲所有事情都是異步安排的,所以排隊。因此,如果工作流程循環回到具有接收活動的相同Pick,則兩個WCF請求幾乎在第一個將被處理的同時到達,第二個將被排隊並處理。 – Maurice

+0

感謝您的回覆。當新的請求到達第二個接收分支時,是否可以取消延遲活動,以便事件進入單個線程。現在發生的事情是,當第一接收分支得到奏響了由延遲活動我也無法通過他們,你說排隊的第二分支接收請求,但一旦延遲是在排隊的請求越來越處理。我只想取消延遲並處理請求。 – VJAI