Partager via


WorkflowApplication.Cancel Méthode

Définition

Annule l'instance de flux de travail.

Surcharges

Cancel()

Annule l'instance de flux de travail.

Cancel(TimeSpan)

Annule l'instance de flux de travail à l'aide du délai d'attente spécifié.

Remarques

Cette méthode planifie l'annulation de l'instance de flux de travail. Pour être informé que l'annulation s'est correctement déroulée, utilisez le handle Completed.

Par défaut, l'opération d'annulation doit être exécutée dans un délai de 30 secondes, sinon une exception TimeoutException est levée.

Cancel()

Annule l'instance de flux de travail.

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

Exemples

L'exemple suivant héberge un workflow à l'aide de WorkflowApplication. Une instance de WorkflowApplication est construite à l'aide de la définition de flux de travail spécifiée, les événements de cycle de vie souhaités du flux de travail sont gérés et le flux de travail est appelé au moyen d'un appel à Run. Une fois que le flux de travail a démarré, la méthode Cancel est appelée. Lorsque le flux de travail est annulé, la sortie suivante s'affiche sur la 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();

Remarques

Cette méthode planifie l'annulation de l'instance de flux de travail. Pour être averti lorsque l'annulation est terminée, utilisez le gestionnaire d'événements Completed.

Par défaut, l'opération d'annulation doit être exécutée dans un délai de 30 secondes, sinon une exception TimeoutException est levée.

S’applique à

Cancel(TimeSpan)

Annule l'instance de flux de travail à l'aide du délai d'attente spécifié.

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

Paramètres

timeout
TimeSpan

Intervalle dans lequel l'opération d'annulation doit être réalisée avant que l'opération ne soit annulée et qu'une TimeoutException ne soit levée.

Exemples

L'exemple suivant héberge un workflow à l'aide de WorkflowApplication. Une instance de WorkflowApplication est construite à l'aide de la définition de flux de travail spécifiée, les événements de cycle de vie souhaités du flux de travail sont gérés et le flux de travail est appelé au moyen d'un appel à Run. Une fois que le flux de travail a démarré, la méthode Cancel est appelée. Lorsque le flux de travail est annulé, la sortie suivante s'affiche sur la 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();

Remarques

Cette méthode planifie l'annulation de l'instance de flux de travail. Pour être averti lorsque l'annulation est terminée, utilisez le gestionnaire d'événements Completed.

S’applique à