Freigeben über


WorkflowApplication.Cancel Methode

Definition

Bricht die Workflowinstanz ab.

Überlädt

Cancel()

Bricht die Workflowinstanz ab.

Cancel(TimeSpan)

Bricht die Workflowinstanz mithilfe des angegebenen Timeoutintervalls ab.

Hinweise

Diese Methode plant den Abbruch der Workflowinstanz. Um bei Abschluss des Abbruchvorgangs benachrichtigt zu werden, verwenden Sie das Completed-Handle.

Standardmäßig muss der Abbruchvorgang innerhalb von 30 Sekunden abgeschlossen werden. Andernfalls wird eine TimeoutException 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 mit der angegebenen Workflowdefinition erstellt, die gewünschten Lebenszyklusereignisse des Workflows werden behandelt, und der Workflow wird mit einem Aufruf von Run aufgerufen. Nachdem der Workflow gestartet wurde, wird Cancel aufgerufen. Wenn der Workflow abgebrochen wurde, 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 bei Abschluss des Abbruchvorgangs benachrichtigt zu werden, verwenden Sie den Completed-Handler.

Standardmäßig muss der Abbruchvorgang innerhalb von 30 Sekunden abgeschlossen werden. Andernfalls wird eine TimeoutException 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 und eine TimeoutException ausgelöst wird.

Beispiele

Im folgenden Beispiel wird ein Workflow mit WorkflowApplication gehostet. Eine WorkflowApplication-Instanz wird mit der angegebenen Workflowdefinition erstellt, die gewünschten Lebenszyklusereignisse des Workflows werden behandelt, und der Workflow wird mit einem Aufruf von Run aufgerufen. Nachdem der Workflow gestartet wurde, wird Cancel aufgerufen. Wenn der Workflow abgebrochen wurde, 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 bei Abschluss des Abbruchvorgangs benachrichtigt zu werden, verwenden Sie den Completed-Handler.

Gilt für: