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>