WorkflowApplication.Cancel Methode

Definitie

Hiermee wordt het werkstroomexemplaren geannuleerd.

Overloads

Name Description
Cancel()

Hiermee wordt het werkstroomexemplaren geannuleerd.

Cancel(TimeSpan)

Hiermee wordt het werkstroomexemplaren geannuleerd met behulp van het opgegeven time-outinterval.

Opmerkingen

Met deze methode wordt de annulering van het werkstroomexemplaren gepland. Als u een melding wilt ontvangen wanneer de annulering is voltooid, gebruikt u de Completed ingang.

Standaard moet de annuleringsbewerking binnen 30 seconden worden voltooid of wordt er een TimeoutException gegenereerd.

Cancel()

Hiermee wordt het werkstroomexemplaren geannuleerd.

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

Voorbeelden

In het volgende voorbeeld wordt een werkstroom gehost met behulp van WorkflowApplication. Een WorkflowApplication exemplaar wordt samengesteld met behulp van de opgegeven werkstroomdefinitie, de gewenste levenscyclusgebeurtenissen van de werkstroom worden verwerkt en de werkstroom wordt aangeroepen met een aanroep naar Run. Nadat de werkstroom is gestart, Cancel wordt deze aangeroepen. Wanneer de werkstroom wordt geannuleerd, wordt de volgende uitvoer weergegeven in de console.

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

Opmerkingen

Met deze methode wordt de annulering van het werkstroomexemplaren gepland. Als u een melding wilt ontvangen wanneer de annulering is voltooid, gebruikt u de Completed handler.

Standaard moet de annuleringsbewerking binnen 30 seconden worden voltooid of wordt er een TimeoutException gegenereerd.

Van toepassing op

Cancel(TimeSpan)

Hiermee wordt het werkstroomexemplaren geannuleerd met behulp van het opgegeven time-outinterval.

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

Parameters

timeout
TimeSpan

Het interval waarin de annuleringsbewerking moet worden voltooid voordat de bewerking wordt geannuleerd en er een TimeoutException wordt gegenereerd.

Voorbeelden

In het volgende voorbeeld wordt een werkstroom gehost met behulp van WorkflowApplication. Een WorkflowApplication exemplaar wordt samengesteld met behulp van de opgegeven werkstroomdefinitie, de gewenste levenscyclusgebeurtenissen van de werkstroom worden verwerkt en de werkstroom wordt aangeroepen met een aanroep naar Run. Nadat de werkstroom is gestart, Cancel wordt deze aangeroepen. Wanneer de werkstroom wordt geannuleerd, wordt de volgende uitvoer weergegeven in de console.

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

Opmerkingen

Met deze methode wordt de annulering van het werkstroomexemplaren gepland. Als u een melding wilt ontvangen wanneer de annulering is voltooid, gebruikt u de Completed handler.

Van toepassing op