WorkflowApplication.Cancel 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
워크플로 인스턴스를 취소합니다.
오버로드
| Name | Description |
|---|---|
| Cancel() |
워크플로 인스턴스를 취소합니다. |
| Cancel(TimeSpan) |
지정된 시간 제한 간격을 사용하여 워크플로 인스턴스를 취소합니다. |
설명
이 메서드는 워크플로 인스턴스의 취소를 예약합니다. 취소가 완료되면 알림을 받도록 핸들을 Completed 사용합니다.
기본적으로 취소 작업은 30초 안에 완료되거나 throw TimeoutException 됩니다.
Cancel()
워크플로 인스턴스를 취소합니다.
public:
void Cancel();
public void Cancel();
member this.Cancel : unit -> unit
Public Sub Cancel ()
예제
다음 예제에서는 WorkflowApplication사용하여 워크플로를 호스트합니다. WorkflowApplication 인스턴스는 지정된 워크플로 정의를 사용하여 생성되고, 원하는 워크플로 수명 주기 이벤트가 처리되고, 워크플로가 호출Run로 호출됩니다. 워크플로가 시작된 Cancel 후 호출됩니다. 워크플로가 취소되면 다음 출력이 콘솔에 표시됩니다.
Starting the workflow.
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Idle.
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Canceled
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Unloaded.
Activity wf = new Sequence
{
Activities =
{
new WriteLine
{
Text = "Starting the workflow."
},
new Delay
{
Duration = TimeSpan.FromSeconds(5)
},
new WriteLine
{
Text = "Ending the workflow."
}
}
};
// Create a WorkflowApplication instance.
WorkflowApplication wfApp = new WorkflowApplication(wf);
// Subscribe to any desired workflow lifecycle events.
wfApp.Completed = delegate(WorkflowApplicationCompletedEventArgs e)
{
if (e.CompletionState == ActivityInstanceState.Faulted)
{
Console.WriteLine("Workflow {0} Terminated.", e.InstanceId);
Console.WriteLine("Exception: {0}\n{1}",
e.TerminationException.GetType().FullName,
e.TerminationException.Message);
}
else if (e.CompletionState == ActivityInstanceState.Canceled)
{
Console.WriteLine("Workflow {0} Canceled.", e.InstanceId);
}
else
{
Console.WriteLine("Workflow {0} Completed.", e.InstanceId);
}
};
// Run the workflow.
wfApp.Run();
Thread.Sleep(TimeSpan.FromSeconds(1));
wfApp.Cancel();
설명
이 메서드는 워크플로 인스턴스의 취소를 예약합니다. 취소가 완료되면 알림을 받도록 처리기를 Completed 사용합니다.
기본적으로 취소 작업은 30초 안에 완료되거나 throw TimeoutException 됩니다.
적용 대상
Cancel(TimeSpan)
지정된 시간 제한 간격을 사용하여 워크플로 인스턴스를 취소합니다.
public:
void Cancel(TimeSpan timeout);
public void Cancel(TimeSpan timeout);
member this.Cancel : TimeSpan -> unit
Public Sub Cancel (timeout As TimeSpan)
매개 변수
- timeout
- TimeSpan
작업이 취소되고 throw되기 전에 취소 작업이 완료되어야 하는 TimeoutException 간격입니다.
예제
다음 예제에서는 WorkflowApplication사용하여 워크플로를 호스트합니다. WorkflowApplication 인스턴스는 지정된 워크플로 정의를 사용하여 생성되고, 원하는 워크플로 수명 주기 이벤트가 처리되고, 워크플로가 호출Run로 호출됩니다. 워크플로가 시작된 Cancel 후 호출됩니다. 워크플로가 취소되면 다음 출력이 콘솔에 표시됩니다.
Starting the workflow.
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Idle.
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Canceled
Workflow bcce00c2-d323-42c2-8c25-19ff0c4b6dac Unloaded.
Activity wf = new Sequence
{
Activities =
{
new WriteLine
{
Text = "Starting the workflow."
},
new Delay
{
Duration = TimeSpan.FromSeconds(5)
},
new WriteLine
{
Text = "Ending the workflow."
}
}
};
// Create a WorkflowApplication instance.
WorkflowApplication wfApp = new WorkflowApplication(wf);
// Subscribe to any desired workflow lifecycle events.
wfApp.Completed = delegate(WorkflowApplicationCompletedEventArgs e)
{
if (e.CompletionState == ActivityInstanceState.Faulted)
{
Console.WriteLine("Workflow {0} Terminated.", e.InstanceId);
Console.WriteLine("Exception: {0}\n{1}",
e.TerminationException.GetType().FullName,
e.TerminationException.Message);
}
else if (e.CompletionState == ActivityInstanceState.Canceled)
{
Console.WriteLine("Workflow {0} Canceled.", e.InstanceId);
}
else
{
Console.WriteLine("Workflow {0} Completed.", e.InstanceId);
}
};
// Run the workflow.
wfApp.Run();
Thread.Sleep(TimeSpan.FromSeconds(1));
wfApp.Cancel();
설명
이 메서드는 워크플로 인스턴스의 취소를 예약합니다. 취소가 완료되면 알림을 받도록 처리기를 Completed 사용합니다.