WorkflowApplication.Cancel メソッド

定義

ワークフロー インスタンスを取り消します。

オーバーロード

名前 説明
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 ハンドラーを使用します。

適用対象