Export (0) Print
Expand All

WorkflowApplication::Terminate Method (Exception, TimeSpan)

Terminates a workflow instance using the specified exception and time-out interval.

Namespace:  System.Activities
Assembly:  System.Activities (in System.Activities.dll)

void Terminate(
	Exception^ reason, 
	TimeSpan timeout


Type: System::Exception

The reason for terminating the workflow instance.

Type: System::TimeSpan

The interval in which the Terminate operation must complete before the operation is canceled and a TimeoutException is thrown.

This method schedules the termination of the workflow. To be notified when the termination has completed, use the OnCompleted handle.

The following example hosts a workflow using WorkflowApplication. A WorkflowApplication instance is constructed using the specified workflow definition, the desired workflow lifecycle events are handled, and the workflow is invoked with a call to Run. After the workflow is started, Terminate is called. When the workflow is terminated, the following output is displayed to the console.

Starting the workflow. 
Workflow de28efe5-9057-472b-8d95-899c249893c5 Terminated.
Exception: System.ApplicationException
Terminating the workflow. 
Workflow de28efe5-9057-472b-8d95-899c249893c5 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}",
    else if (e.CompletionState == ActivityInstanceState.Canceled)
        Console.WriteLine("Workflow {0} Canceled.", e.InstanceId);
        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.Terminate(new ApplicationException("Terminating the workflow."),

.NET Framework

Supported in: 4.5, 4

.NET Framework Client Profile

Supported in: 4

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

© 2014 Microsoft