다음을 통해 공유


순서에 상관없이 메시지 처리

워크플로 서비스는 특정 순서로 보내지는 메시지에 따라 달라질 수 있습니다. 워크플로 서비스는 하나 이상의 Receive 활동을 포함하고 각 Receive 활동은 특정 메시지를 기다립니다. 특정 전송 전달 보장이 없으면 클라이언트가 보낸 메시지가 지연되어 워크플로 서비스가 예상할 수 없는 순서로 배달될 수 있습니다. 메시지를 순서에 상관없이 보내도 되는 워크플로 서비스를 구현하는 작업은 일반적으로 병렬 활동을 사용하여 수행됩니다. 복잡한 애플리케이션 프로토콜의 경우 워크플로가 매우 빠른 속도로 매우 복잡해질 수 있습니다. 메시지를 순서에 상관없이 처리하는 WCF(Windows Communication Foundation)의 기능을 사용하면 중첩된 병렬 활동의 복잡도를 모두 제외한 워크플로를 만들 수 있습니다. 메시지를 순서에 상관없이 처리하는 기능은 WCF MSMQ 바인딩 같은 ReceiveContext를 지원하는 채널에서만 지원됩니다.

메시지를 순서에 상관없이 처리하는 기능 사용

메시지를 순서에 상관없이 처리하는 기능을 사용하려면 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>  

참고 항목