WorkflowApplication.Cancel Methode

Definition

Bricht die Workflowinstanz ab.

Überlädt

Name Beschreibung
Cancel()

Bricht die Workflowinstanz ab.

Cancel(TimeSpan)

Bricht die Workflowinstanz mithilfe des angegebenen Timeoutintervalls ab.

Hinweise

Diese Methode plant den Abbruch der Workflowinstanz. Um benachrichtigt zu werden, wenn die Kündigung abgeschlossen ist, verwenden Sie das Completed Handle.

Standardmäßig muss der Abbruchvorgang in 30 Sekunden abgeschlossen werden, oder ein TimeoutException Vorgang wird ausgelöst.

Cancel()

Bricht die Workflowinstanz ab.

public:
 void Cancel();
public void Cancel();
member this.Cancel : unit -> unit
Public Sub Cancel ()

Beispiele

Im folgenden Beispiel wird ein Workflow mit WorkflowApplication gehostet. Eine WorkflowApplication Instanz wird mithilfe der angegebenen Workflowdefinition erstellt, die gewünschten Workflowlebenszyklusereignisse werden behandelt, und der Workflow wird mit einem Aufruf Runaufgerufen. Nachdem der Workflow gestartet wurde, Cancel wird er aufgerufen. Wenn der Workflow abgebrochen wird, wird die folgende Ausgabe in der Konsole angezeigt.

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();

Hinweise

Diese Methode plant den Abbruch der Workflowinstanz. Um benachrichtigt zu werden, wenn der Abbruch abgeschlossen ist, verwenden Sie den Completed Handler.

Standardmäßig muss der Abbruchvorgang in 30 Sekunden abgeschlossen werden, oder ein TimeoutException Vorgang wird ausgelöst.

Gilt für:

Cancel(TimeSpan)

Bricht die Workflowinstanz mithilfe des angegebenen Timeoutintervalls ab.

public:
 void Cancel(TimeSpan timeout);
public void Cancel(TimeSpan timeout);
member this.Cancel : TimeSpan -> unit
Public Sub Cancel (timeout As TimeSpan)

Parameter

timeout
TimeSpan

Das Intervall, in dem der Abbruchvorgang abgeschlossen werden muss, bevor der Vorgang abgebrochen wird und ein TimeoutException Vorgang ausgelöst wird.

Beispiele

Im folgenden Beispiel wird ein Workflow mit WorkflowApplication gehostet. Eine WorkflowApplication Instanz wird mithilfe der angegebenen Workflowdefinition erstellt, die gewünschten Workflowlebenszyklusereignisse werden behandelt, und der Workflow wird mit einem Aufruf Runaufgerufen. Nachdem der Workflow gestartet wurde, Cancel wird er aufgerufen. Wenn der Workflow abgebrochen wird, wird die folgende Ausgabe in der Konsole angezeigt.

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();

Hinweise

Diese Methode plant den Abbruch der Workflowinstanz. Um benachrichtigt zu werden, wenn der Abbruch abgeschlossen ist, verwenden Sie den Completed Handler.

Gilt für: