WorkflowApplication.Cancel Metod

Definition

Avbryter arbetsflödesinstansen.

Överlagringar

Name Description
Cancel()

Avbryter arbetsflödesinstansen.

Cancel(TimeSpan)

Avbryter arbetsflödesinstansen med det angivna tidsgränsintervallet.

Kommentarer

Den här metoden schemalägger annulleringen av arbetsflödesinstansen. Använd handtaget för att meddelas när annulleringen har slutförts Completed .

Som standard måste avbryt-åtgärden slutföras om 30 sekunder eller så utlöses en TimeoutException .

Cancel()

Avbryter arbetsflödesinstansen.

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

Exempel

I följande exempel finns ett arbetsflöde med .WorkflowApplication En WorkflowApplication instans skapas med den angivna arbetsflödesdefinitionen, önskade livscykelhändelser för arbetsflödet hanteras och arbetsflödet anropas med ett anrop till Run. När arbetsflödet har startats Cancel anropas. När arbetsflödet avbryts visas följande utdata för konsolen.

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

Kommentarer

Den här metoden schemalägger annulleringen av arbetsflödesinstansen. Om du vill få ett meddelande när annulleringen har slutförts använder du Completed hanteraren.

Som standard måste avbryt-åtgärden slutföras om 30 sekunder eller så utlöses en TimeoutException .

Gäller för

Cancel(TimeSpan)

Avbryter arbetsflödesinstansen med det angivna tidsgränsintervallet.

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

Parametrar

timeout
TimeSpan

Det intervall i vilket avbryta-åtgärden måste slutföras innan åtgärden avbryts och en TimeoutException utlöses.

Exempel

I följande exempel finns ett arbetsflöde med .WorkflowApplication En WorkflowApplication instans skapas med den angivna arbetsflödesdefinitionen, önskade livscykelhändelser för arbetsflödet hanteras och arbetsflödet anropas med ett anrop till Run. När arbetsflödet har startats Cancel anropas. När arbetsflödet avbryts visas följande utdata för konsolen.

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

Kommentarer

Den här metoden schemalägger annulleringen av arbetsflödesinstansen. Om du vill få ett meddelande när annulleringen har slutförts använder du Completed hanteraren.

Gäller för