不按照順序的訊息處理
本主題僅適用於 Windows Workflow Foundation 4。
工作流程服務可能取決於訊息以特定順序傳送。 工作流程服務包含一個或多個 Receive 活動,各個 Receive 活動會預期某個特定的訊息。 要是沒有特定的傳輸傳遞保證,用戶端傳送的訊息可能會延遲,因而傳遞的順序可能不符合工作流程服務的預期。 實作不要求訊息以特定順序傳送的工作流程服務,通常會使用平行活動來完成。 若是應用程式通訊協定較為繁複,工作流程很快就會變得非常複雜。 Windows Communication Foundation (WCF) 中的不按照順序的訊息處理功能可讓您建立這類工作流程,避免巢狀平行活動的複雜度。 只有在支援 ReceiveContext 的通道 (例如 WCF MSMQ 繫結) 上,才支援不按照順序的訊息處理。
啟用不按照順序的訊息處理
若要啟用不按照順序的訊息處理,請將 WorkflowService 上的 AllowBufferedReceive 屬性設定為 true。 下列範例示範如何利用程式碼設定 AllowBufferedReceive 屬性。
// Code: Opt-in to Buffered Receive processing...
WorkflowService service = new WorkflowService
{
Name="MyService",
Body = workflow,
AllowBufferedReceive = true
};
您也可以利用 XAML,將 AllowBufferedReceive
屬性套用到工作流程服務,如下列範例所示。
// Xaml: Opt-in to Buffered Receive processing...
<WorkflowService AllowBufferedReceive="True">
<!—the actual children activities -->
</Sequence>