Condividi tramite


WorkflowApplication.Cancel Metodo

Definizione

Annulla l'istanza del flusso di lavoro.

Overload

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 essere notificato quando la chiusura è stata completata, utilizzare l'handle Completed.

Per impostazione predefinita, l'operazione di annullamento deve essere completata in 30 secondi, altrimenti viene generata una 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 tramite WorkflowApplication. Un'istanza WorkflowApplication viene costruita utilizzando la definizione di flusso di lavoro specificata, vengono gestiti gli eventi del ciclo di vita del flusso di lavoro desiderati e il flusso di lavoro viene richiamato con una chiamata a Run. Dopo aver avviato il flusso di lavoro, viene richiamato l'oggetto Cancel. Quando il flusso di lavoro viene annullato, l'output seguente viene visualizzato 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 completamento dell'annullamento, utilizzare il gestore Completed.

Per impostazione predefinita, l'operazione di annullamento deve essere completata in 30 secondi, altrimenti viene generata una 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 nel quale deve essere completata l'operazione di annullamento prima che sia annullata e venga generato un oggetto TimeoutException.

Esempio

Nell'esempio seguente viene ospitato un flusso di lavoro tramite WorkflowApplication. Un'istanza WorkflowApplication viene costruita utilizzando la definizione di flusso di lavoro specificata, vengono gestiti gli eventi del ciclo di vita del flusso di lavoro desiderati e il flusso di lavoro viene richiamato con una chiamata a Run. Dopo aver avviato il flusso di lavoro, viene richiamato l'oggetto Cancel. Quando il flusso di lavoro viene annullato, l'output seguente viene visualizzato 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 completamento dell'annullamento, utilizzare il gestore Completed.

Si applica a