이 항목은 Windows Workflow Foundation 4에 적용됩니다.
이 샘플에서는 CompensableActivity에 대해 취소 처리기를 사용하는 방법을 보여 줍니다.
이 샘플에는 CompensableActivity 취소를 사용하는 방법을 보여 주는 두 가지 시나리오가 포함되어 있습니다. 첫째 시나리오에는 보정 가능한 루트 활동이 있으며 이 활동에는 보정 가능한 자식 활동 세 개가 포함되어 있습니다. 자식 활동 두 개는 해당 활동 본문의 실행을 성공적으로 마칩니다. 그러나 셋째 자식 활동의 경우에는 해당 본문을 실행하는 동안 예외가 발생합니다. 이 예외를 처리하기 위해 셋째 활동의 진행이 취소되며, 그 후에는 루트 활동의 취소가 트리거됩니다. 이 샘플에서 루트 활동의 논리는 앞서 완료된 다른 두 자식 활동을 보정하는 것입니다.
Try
{
CA
{
CA1
{
}
CA2
{
}
CA3
{
//Exception here
// Then this will get cancelled
}
// Cancellation for the root activity automatically gets called, which, in turn, adds some logic to revert what was done (Or can decide to actually confirm CA1 & CA2 if the user so desires).
}
}
Catches {
// Can do more stuff...
}
둘째 시나리오에서는 TryCatch 분기 전에 완료되는 Delay와 병렬로 TryCatch를 실행하는 방법을 보여 줍니다. 첫째 분기를 완료하고 나면 완료 조건이 true로 설정되므로 다른 분기가 취소됩니다.
Parallel
{
Branch1
{
// Small Delay that times out (timeout1) before branch2.
}
Branch2
{
CA
{
CA1
{
}
CA2
{
}
CA3
{
}
If (timeout1)
{
call Cancel CA
}
}
}
}
샘플을 설치, 빌드 및 실행하려면
Visual Studio 2010을 사용하여 CompensationCancellation.sln을 엽니다.
F6 키를 누르거나 빌드 메뉴에서 "솔루션 빌드"를 선택하여 샘플을 빌드합니다.
F5 키를 누르거나 디버그 메뉴에서 "디버깅 시작"을 선택하여 샘플을 실행합니다. 또는 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\Compensation\CompensationCancellation
|
참고: