无序消息处理

本主题适用于 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
};

还可以将 AllowBufferedReceive 特性应用到 XAML 中的工作流服务,如下面的示例所示。

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

另请参见

参考

ReceiveContext

其他资源

工作流服务
Queues and Reliable Sessions