Przetwarzanie komunikatów poza kolejnością

Usługi przepływu pracy mogą zależeć od komunikatów wysyłanych w określonej kolejności. Usługa przepływu pracy zawiera co najmniej jedno Receive działanie, a każde Receive działanie oczekuje określonego komunikatu. Bez gwarancji dostawy transportu komunikaty wysyłane przez klientów mogą być opóźnione i dlatego dostarczane w kolejności, w których usługa przepływu pracy może nie oczekiwać. Implementowanie usługi przepływu pracy, która nie wymaga wysyłania komunikatów w określonej kolejności, zwykle odbywa się przy użyciu działania równoległego. W przypadku bardziej skomplikowanego protokołu aplikacji przepływ pracy stałby się bardzo złożony bardzo szybko. Funkcja przetwarzania komunikatów poza kolejnością w programie Windows Communication Foundation (WCF) umożliwia utworzenie takiego przepływu pracy bez całej złożoności zagnieżdżonych działań równoległych. Przetwarzanie komunikatów poza kolejnością jest obsługiwane tylko w kanałach obsługujących ReceiveContext takie jak powiązania MSMQ programu WCF.

Włączanie przetwarzania komunikatów poza kolejnością

Przetwarzanie komunikatów poza kolejnością jest włączone przez ustawienie AllowBufferedReceive właściwości na true wartość w usłudze WorkflowService. W poniższym przykładzie pokazano, jak ustawić AllowBufferedReceive właściwość w kodzie.

// Code: Opt-in to Buffered Receive processing...  
WorkflowService service = new WorkflowService  
{  
    Name="MyService",  
    Body = workflow,  
    AllowBufferedReceive = true  
};  

Atrybut można również zastosować AllowBufferedReceive do usługi przepływu pracy w języku XAML, jak pokazano w poniższym przykładzie.

// Xaml: Opt-in to Buffered Receive processing...  
<WorkflowService AllowBufferedReceive="True">  
   <!--the actual children activities -->  
</Sequence>  

Zobacz też