WorkflowApplication.Cancel Metodo

Definizione

Annulla l'istanza del flusso di lavoro.

Overload

Nome Descrizione
Cancel()

Annulla l'istanza del flusso di lavoro.

Cancel(TimeSpan)

Annulla l'istanza del flusso di lavoro utilizzando l'intervallo di timeout specificato.

Commenti

Questo metodo pianifica l'annullamento dell'istanza del flusso di lavoro. Per ricevere una notifica al termine dell'annullamento, usare l'handle Completed .

Per impostazione predefinita, l'operazione di annullamento deve essere completata in 30 secondi o viene generata un'eccezione TimeoutException .

Cancel()

Annulla l'istanza del flusso di lavoro.

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

Esempio

Nell'esempio seguente viene ospitato un flusso di lavoro usando WorkflowApplication. Un'istanza WorkflowApplication viene costruita usando la definizione del flusso di lavoro specificata, gli eventi del ciclo di vita del flusso di lavoro desiderati vengono gestiti e il flusso di lavoro viene richiamato con una chiamata a Run. Dopo l'avvio del flusso di lavoro, Cancel viene chiamato . Quando il flusso di lavoro viene annullato, viene visualizzato l'output seguente nella 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();

Commenti

Questo metodo pianifica l'annullamento dell'istanza del flusso di lavoro. Per ricevere una notifica al termine dell'annullamento, usare il Completed gestore.

Per impostazione predefinita, l'operazione di annullamento deve essere completata in 30 secondi o viene generata un'eccezione TimeoutException .

Si applica a

Cancel(TimeSpan)

Annulla l'istanza del flusso di lavoro utilizzando l'intervallo di timeout specificato.

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

Parametri

timeout
TimeSpan

Intervallo in cui l'operazione di annullamento deve essere completata prima dell'annullamento dell'operazione e viene generata un'eccezione TimeoutException .

Esempio

Nell'esempio seguente viene ospitato un flusso di lavoro usando WorkflowApplication. Un'istanza WorkflowApplication viene costruita usando la definizione del flusso di lavoro specificata, gli eventi del ciclo di vita del flusso di lavoro desiderati vengono gestiti e il flusso di lavoro viene richiamato con una chiamata a Run. Dopo l'avvio del flusso di lavoro, Cancel viene chiamato . Quando il flusso di lavoro viene annullato, viene visualizzato l'output seguente nella 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();

Commenti

Questo metodo pianifica l'annullamento dell'istanza del flusso di lavoro. Per ricevere una notifica al termine dell'annullamento, usare il Completed gestore.

Si applica a