WorkflowInstance Class


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Note: This API is now obsolete.

Represents a workflow instance.

Namespace:   System.Workflow.Runtime
Assembly:  System.Workflow.Runtime (in System.Workflow.Runtime.dll)


[ObsoleteAttribute("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")]
public sealed class WorkflowInstance


Gets the unique identifier for the workflow instance.


Gets the WorkflowRuntime for this workflow instance.


Aborts the workflow instance.


Applies changes to the workflow instance specified by the WorkflowChanges object.

System_CAPS_pubmethodEnqueueItem(IComparable, Object, IPendingWork, Object)

Posts a message to the specified workflow queue synchronously.

System_CAPS_pubmethodEnqueueItemOnIdle(IComparable, Object, IPendingWork, Object)

Posts a message to the specified workflow queue when the workflow is idle. EnqueueItemOnIdle waits until the workflow reaches an idle point and enqueues after verifying that the workflow scheduler is idle (that is, no active operation is being executed).


Returns a value that indicates whether the specified object is equal to the WorkflowInstance.(Overrides Object.Equals(Object).)


Returns the hash code for this workflow instance.(Overrides Object.GetHashCode().)


Gets the Type of the current instance.(Inherited from Object.)


Retrieves the root activity for this workflow instance.


Returns the next point in time that this WorkflowInstance is scheduled to be delivered a timer message.


Gets a collection of WorkflowQueueInfo objects that contains the pending items and subscribed activities for the workflow queues associated with this workflow instance.


Loads a previously unloaded workflow instance.


Reload the tracking profiles for this workflow instance.


Resumes execution of a previously suspended workflow instance.


Starts the execution of the workflow instance.


Suspends the workflow instance.


Terminates the workflow instance in a synchronous manner.


Returns a string that represents the current object.(Inherited from Object.)


Unloads the workflow instance from memory to the persistence store when the instance is suspended or idle.


Unloads the workflow instance from memory to the persistence store. This call blocks until after the currently scheduled work is finished, or the end of a transaction scope.


This material discusses types and namespaces that are obsolete. For more information, see Deprecated Types in Windows Workflow Foundation 4.5.

The WorkflowInstance class exposes methods and properties that can be used to control the execution of a workflow instance; it is essentially a proxy to the actual workflow instance used by the workflow runtime engine. A host or a service can instruct the workflow runtime engine to perform actions on a workflow instance by calling the appropriate methods that are contained in the WorkflowInstance class. If the requested action is not valid, for example, if the host calls Load on a workflow instance that has already completed, the workflow runtime engine will raise an appropriate exception.


If a workflow instance becomes unresponsive because a call on the host application does not return, the only way to recover the instance is to restart the runtime. However, if the instance has been forcibly unloaded, aborted, or suspended, it can be continued by calling the WorkflowInstance.Resume method.

The following code example demonstrates how you can create and start a WorkflowInstance in a workflow host. The code creates an instance of the WorkflowRuntime, adds services to the runtime, and then demonstrates the recommended way to create a WorkflowInstance object. The code initializes WorkflowInstance by calling the CreateWorkflow method and passing the previously created type to it. The WorkflowInstance is started with the Start method call.

This code example is part of the Canceling a Workflow SDK sample from the Program.cs file. For more information, see Canceling a Workflow.

Type type = typeof(SampleWorkflow1);
WorkflowInstance workflowInstance = workflowRuntime.CreateWorkflow(type);

.NET Framework
Available since 3.0

This type is thread safe.

Return to top