Edit

Share via


WorkflowApplication.Completed Property

Definition

Gets or sets the Action<T> that is invoked when the workflow instance completes.

public:
 property Action<System::Activities::WorkflowApplicationCompletedEventArgs ^> ^ Completed { Action<System::Activities::WorkflowApplicationCompletedEventArgs ^> ^ get(); void set(Action<System::Activities::WorkflowApplicationCompletedEventArgs ^> ^ value); };
public Action<System.Activities.WorkflowApplicationCompletedEventArgs> Completed { get; set; }
member this.Completed : Action<System.Activities.WorkflowApplicationCompletedEventArgs> with get, set
Public Property Completed As Action(Of WorkflowApplicationCompletedEventArgs)

Property Value

The action that is invoked when the workflow instance is complete.

Examples

The following code example inspects the WorkflowApplicationCompletedEventArgs passed into the Completed handler of a WorkflowApplication instance and displays information about how the workflow completed.

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

        // Retrieve the outputs of the workflow.
        foreach (var kvp in e.Outputs)
        {
            Console.WriteLine("Name: {0} - Value {1}",
                kvp.Key, kvp.Value);
        }

        // Outputs can be directly accessed by argument name.
        Console.WriteLine("The winner is {0}.", e.Outputs["Winner"]);
    }
};

Applies to