Metodo WorkflowApplication.Terminate (String, TimeSpan)

.NET Framework (current version)
 

Termina un'istanza del flusso di lavoro utilizzando il messaggio di errore e l'intervallo di timeout specificato.

Spazio dei nomi:   System.Activities
Assembly:  System.Activities (in System.Activities.dll)

public void Terminate(
	string reason,
	TimeSpan timeout
)

Parametri

reason
Type: System.String

Motivo della chiusura dell'istanza del flusso di lavoro.

timeout
Type: System.TimeSpan

Intervallo nel quale l'operazione Terminate deve essere completata prima che l'operazione è cancellata e un TimeoutException è generato.

Questo metodo pianifica la chiusura dell'istanza del flusso di lavoro. Per essere notificato quando la chiusura è stata completata, utilizzare l'handle P:System.Activities.WorkflowApplication.OnCompleted.

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 Terminate. Quando il flusso di lavoro viene terminato, l'output seguente viene visualizzato nella console.

Avvio del flusso di lavoro.Flusso di lavoro 2897d2ef-377e-4224-ae93-5c19b38f487c terminato.Eccezione: System.Activities.WorkflowApplicationTerminatedExceptiondel flusso di lavoro.Flusso di lavoro 2897d2ef-377e-4224-ae93-5c19b38f487c scaricato.
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);

        // Outputs can be retrieved from the Outputs dictionary,
        // keyed by argument name.
        // Console.WriteLine("The winner is {0}.", e.Outputs["Winner"]);
    }
};

wfApp.Unloaded = delegate(WorkflowApplicationEventArgs e)
{
    Console.WriteLine("Workflow {0} unloaded.", e.InstanceId);
};

// Run the workflow.
wfApp.Run();

Thread.Sleep(TimeSpan.FromSeconds(1));

wfApp.Terminate("Terminating the workflow.", TimeSpan.FromSeconds(15));

.NET Framework
Disponibile da 4.0
Torna all'inizio
Mostra: