CancellationScope 사용
이 항목은 Windows Workflow Foundation 4에 적용됩니다.
이 샘플에서는 CancellationScope 활동을 사용하여 응용 프로그램에서 작업을 취소하는 방법을 보여 줍니다.
많은 중간 계층 구성 요소 및 서비스는 잘 알려진 트랜잭션 프로그래밍 구문을 사용하여 취소를 처리하지만 트랜잭션에서 수행할 수 없는 작업을 취소해야 하는 경우도 많습니다. 취소해야 하는 작업을 먼저 추적해야 하기 때문에 취소를 사용하는 것이 트랜잭션을 사용하는 것보다 어렵습니다. .NET Framework 4에서 제공하는 CancellationScope 활동은 이 작업을 수행하는 데 도움이 됩니다.
취소는 활동 내에서 또는 활동의 부모에서 트리거할 수 있습니다. 자식 활동은 Sequence, Parallel, Flowchart 또는 사용자 지정 복합 활동과 같은 부모 활동에 의해 예약됩니다. 이유에 관계없이 부모 활동은 자식 활동을 취소할 수 있습니다. 예를 들어 세 개의 자식 분기가 있는 Parallel 활동은 분기를 완료하고 CompletionCondition식이 true로 평가될 때마다 나머지 자식 분기를 취소합니다. Cancel을 호출하여 호스트 응용 프로그램에서 워크플로를 외부적으로 취소할 수도 있습니다.
CancellationScope 활동을 사용하려면 취소해야 하는 작업을 Body 속성에 넣고 취소 후에 수행되는 작업을 CancellationHandler 속성에 넣습니다.
이 샘플에서는 활동 자체 내에서 활동을 취소하는 방법을 보여 줍니다.
이 샘플에서 CancellationScope 활동을 보여 주기 위해 사용하는 시니리오에서는 고객이 최대한 빨리 마이애미행 비행기표를 구입하려고 합니다. 거래를 원하는 두 개의 여행사가 있으며, 샘플에서는 Parallel 활동 내에서 두 개의 CancellationScope를 사용하여 이 비즈니스 논리를 모델링합니다. Parallel 활동의 CompletionCondition은 true로 설정됩니다. CompletionCondition은 분기 중 하나가 완료된 후 확인되므로 첫 번째 분기가 완료된 후 나머지 분기가 취소됩니다. 클라이언트 응용 프로그램은 두 여행사에 비행기표 구입을 문의한 후 둘 중 한 여행사에서 비행기표를 구입했음을 확인하면 다른 여행사에서의 주문을 취소합니다.
이 샘플을 사용하려면
Visual Studio 2010을 사용하여 CancelationScopeXAML.sln 솔루션 파일을 엽니다.
F6 키를 눌러 솔루션을 빌드합니다.
Ctrl+F5를 눌러 솔루션을 실행합니다.
![]() |
---|
컴퓨터에 이 샘플이 이미 설치되어 있을 수도 있습니다. 계속하기 전에 다음(기본) 디렉터리를 확인하십시오.
<InstallDrive>:\WF_WCF_Samples
이 디렉터리가 없으면 Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4로 이동하여 WCF(Windows Communication Foundation) 및 WF 샘플을 모두 다운로드하십시오. 이 샘플은 다음 디렉터리에 있습니다.
<InstallDrive>:\WF_WCF_Samples\WF\Basic\Built-InActivities\CancellationScope
|