WorkflowApplication.Cancel メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ワークフロー インスタンスを取り消します。
オーバーロード
Cancel() |
ワークフロー インスタンスを取り消します。 |
Cancel(TimeSpan) |
指定されたタイムアウト期間を使用して、ワークフロー インスタンスを取り消します。 |
注釈
このメソッドは、ワークフロー インスタンスの取り消しをスケジュールします。 取り消し操作が完了したら通知されるようにするには、Completed ハンドルを使用します。
既定では、取り消し操作は 30 秒以内に完了する必要があります。完了しない場合、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 秒以内に完了する必要があります。完了しない場合、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
取り消し操作が取り消されて 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 ハンドラーを使用します。
適用対象
.NET