Compartir por


WorkflowInstance Clase

Definición

WorkflowInstance es un entorno de ejecución ligero por instancia para ejecutar un programa de flujo de trabajo. Se puede crear para crear una nueva instancia de flujo de trabajo o desde el estado de instancia existente. Las API que WorkflowInstance.WorkflowInstanceControl expone son el conjunto mínimo de controles en tiempo de ejecución desde los que se pueden implementar operaciones de nivel superior. Este conjunto de API representa toda la amplitud de funcionalidad del entorno de ejecución. WorkflowInstance es una clase abstracta y se basa en la implementación de un host de sus métodos abstractos para proporcionar funcionalidad de host, como la sincronización, la persistencia, el seguimiento y las extensiones.

public ref class WorkflowInstance abstract
public abstract class WorkflowInstance
type WorkflowInstance = class
Public MustInherit Class WorkflowInstance
Herencia
WorkflowInstance
Derivado

Comentarios

WorkflowInstance es un único subproceso y supone que el host sincroniza todo el acceso a él. Un intento de llamar a varias API simultáneamente provocará que se produzca una InvalidOperationException excepción .

Internamente, tiene WorkflowInstance dos estados: En ejecución y en pausa. La única manera de hacer que el tiempo de ejecución pase de pausa a en ejecución es llamar Runa . Todas las acciones (excepto Pausa) solo se pueden realizar mientras el tiempo de ejecución está en pausa. El tiempo de ejecución se pausará espontáneamente en las situaciones siguientes:

  • Se ha producido un error irrecuperable en el tiempo de ejecución. El host se indicará a través OnRequestAbort de (que no señala una transición a Pausado) y, a continuación, se le notificará a través de OnNotifyPaused.

  • Una excepción en el flujo de trabajo no se detectó y escapó a la raíz. El host recibirá una notificación a través del OnNotifyUnhandledException método .

  • El programador se ha quedado sin elementos de trabajo y ahora Idlees . El host recibirá una notificación a través del OnNotifyPaused método . Tenga en cuenta que el programador podría haberse quedado sin elementos de trabajo porque la instancia está inactiva o porque la instancia está completa. El State valor de la Controller propiedad se puede usar para diferenciar entre los dos.

El host puede solicitar un cambio de Running a Paused llamando a los RequestPause métodos o PauseWhenPersistable de la WorkflowInstance.WorkflowInstanceControl instancia devuelta por la Controller propiedad . Esta solicitud no debe considerarse tener una respuesta específica, lo que significa que el host no debe intentar correlacionar un OnNotify* o OnRequestAbort con una llamada específica para pausar. En respuesta a una solicitud de pausa, el tiempo de ejecución puede pasar a Pausado y llamar OnNotifyPaused a mientras el programador sigue teniendo elementos de trabajo pendientes. El State valor de la Controller propiedad se puede usar para determinar si el programador no tiene más trabajo o se interrumpió mediante una solicitud para pausar.

El RequestPause método de la WorkflowInstance.WorkflowInstanceControl instancia devuelta por la Controller propiedad es el único método al que se puede llamar mientras WorkflowInstance está en estado En ejecución. Todos los demás métodos producirán un InvalidOperationException si se llama a . Dadas las reglas sobre cómo WorkflowInstance se realiza la transición de un estado a otro, la noción pública de Ejecución y Pausa se puede definir de la siguiente manera:

  • En ejecución: el estado entre una llamada a Run y el siguiente WorkflowInstance.OnNotify*.

  • Pausado: el estado entre el último workflowInstance.OnNotify* y la siguiente llamada a Run.

Constructores

Nombre Description
WorkflowInstance(Activity, WorkflowIdentity)

Inicializa una nueva instancia de la WorkflowInstance clase con la definición de flujo de trabajo y la identidad de definición especificadas.

WorkflowInstance(Activity)

Inicializa una nueva instancia de la WorkflowInstance clase con la definición de flujo de trabajo especificada.

Propiedades

Nombre Description
Controller

Obtiene la WorkflowInstance.WorkflowInstanceControl instancia de para este WorkflowInstanceobjeto .

DefinitionIdentity

Obtiene o establece la identidad de definición de WorkflowInstance.

HostEnvironment

Obtiene o establece el entorno raíz para los argumentos y variables de la instancia de flujo de trabajo.

Id

Obtiene el identificador único de la instancia de flujo de trabajo.

IsReadOnly

Obtiene un valor que indica si se ha inicializado la instancia de flujo de trabajo.

SupportsInstanceKeys

Obtiene un valor que indica si el host admite la asociación de con una instancia en tiempo de InstanceKeys ejecución.

SynchronizationContext

Obtiene o establece el SynchronizationContext utilizado para programar la instancia de flujo de trabajo.

WorkflowDefinition

Obtiene la definición de flujo de trabajo de la instancia de flujo de trabajo.

Métodos

Nombre Description
BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object)

Llamado por el tiempo de ejecución del flujo de trabajo para empezar a enviar registros de seguimiento pendientes a los participantes de seguimiento de forma asincrónica.

DisposeExtensions()

Llama a Dispose() en todas las extensiones que implementan IDisposable.

EndFlushTrackingRecords(IAsyncResult)

Llamado por el tiempo de ejecución del flujo de trabajo para finalizar la operación de seguimiento.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
FlushTrackingRecords(TimeSpan)

Llamado por el tiempo de ejecución del flujo de trabajo para enviar registros de seguimiento pendientes a los participantes de seguimiento.

GetActivitiesBlockingUpdate(Object, DynamicUpdateMap)

Recupera la lista de actividades que bloquean la actualización del flujo de trabajo.

GetExtension<T>()

Devuelve una extensión del tipo especificado.

GetExtensions<T>()

Devuelve todas las extensiones encontradas para el tipo especificado.

GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
Initialize(IDictionary<String,Object>, IList<Handle>)

Llamado por el host para inicializar la instancia de flujo de trabajo con los valores de argumento y las propiedades de ejecución.

Initialize(Object, DynamicUpdateMap)

Llamado por el host para inicializar la instancia de flujo de trabajo con el estado en tiempo de ejecución del flujo de trabajo y actualizar la asignación.

Initialize(Object)

Llamado por el host para inicializar la instancia de flujo de trabajo con el estado en tiempo de ejecución del flujo de trabajo.

MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
OnBeginAssociateKeys(ICollection<InstanceKey>, AsyncCallback, Object)

Llamado por el tiempo de ejecución de flujo de trabajo para notificar al host que las nuevas claves de instancia deben estar asociadas a esta instancia.

OnBeginFlushTrackingRecords(AsyncCallback, Object)

Llamada asincrónica para pedir al host que vacíe los registros de seguimiento pendientes a los participantes de seguimiento.

OnBeginPersist(AsyncCallback, Object)

Llamada asincrónica para pedir al host que conserve el flujo de trabajo.

OnBeginResumeBookmark(Bookmark, Object, TimeSpan, AsyncCallback, Object)

Llamado por el tiempo de ejecución del flujo de trabajo para notificar al host que se está iniciando una operación de marcador de reanudación.

OnDisassociateKeys(ICollection<InstanceKey>)

Llamado por el tiempo de ejecución de flujo de trabajo para notificar al host que un determinado conjunto de claves de instancia ya no debe estar asociado a esta instancia.

OnEndAssociateKeys(IAsyncResult)

Llamado por el tiempo de ejecución del flujo de trabajo para notificar al host que se ha completado una operación de claves asociadas.

OnEndFlushTrackingRecords(IAsyncResult)

Lo llama el tiempo de ejecución del flujo de trabajo para notificar al host cuando se completa la operación de registros de seguimiento de vaciado.

OnEndPersist(IAsyncResult)

Llamado por el tiempo de ejecución de flujo de trabajo para notificar al host que se ha completado una operación persistente.

OnEndResumeBookmark(IAsyncResult)

Lo llama el tiempo de ejecución del flujo de trabajo para notificar al host que se ha completado una operación de marcador de reanudación.

OnNotifyPaused()

Llamado por el tiempo de ejecución del flujo de trabajo para notificar al host que la instancia de flujo de trabajo ha pasado del estado en ejecución al estado en pausa.

OnNotifyUnhandledException(Exception, Activity, String)

Llamado por el tiempo de ejecución del flujo de trabajo para notificar al host una excepción no controlada en la instancia de flujo de trabajo.

OnRequestAbort(Exception)

Llamado por el tiempo de ejecución de flujo de trabajo para notificar al host que se ha solicitado una operación de anulación para la instancia de flujo de trabajo.

RegisterExtensionManager(WorkflowInstanceExtensionManager)

Llamado por el host para registrar el administrador de extensiones especificado, validar que todas las extensiones necesarias están presentes e inicializar la colección de extensiones que se van a usar.

ThrowIfReadOnly()

Produce un InvalidOperationException si se ha inicializado la instancia de flujo de trabajo, según lo determinado por IsReadOnly.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a