Partilhar via


WorkflowInstance Classe

Definição

WorkflowInstance é um runtime leve por instância para executar um programa de fluxo de trabalho. Ele pode ser construído para criar uma nova instância de fluxo de trabalho ou do estado de instância existente. As APIs que WorkflowInstance.WorkflowInstanceControl expõem são o conjunto mínimo de controles de runtime dos quais as operações de nível superior podem ser implementadas. Esse conjunto de API representa toda a amplitude da funcionalidade do runtime. WorkflowInstance é uma classe abstrata e depende da implementação de um host de seus métodos abstratos para fornecer funcionalidade de host, como sincronização, persistência, acompanhamento e extensões.

public ref class WorkflowInstance abstract
public abstract class WorkflowInstance
type WorkflowInstance = class
Public MustInherit Class WorkflowInstance
Herança
WorkflowInstance
Derivado

Comentários

WorkflowInstance é threaded único e pressupõe que o host sincroniza todo o acesso a ele. Uma tentativa de chamar várias APIs simultaneamente resultará em um InvalidOperationException lançamento.

Internamente, um WorkflowInstance tem dois estados: Em execução e pausado. A única maneira de fazer com que o runtime faça a transição da pausa para a execução é chamar Run. Todas as ações (exceto Pausar) só podem ser executadas enquanto o runtime está em pausa. O runtime será pausado espontaneamente nas seguintes situações:

  • Ocorreu um erro fatal para o runtime. O host será sinalizado por meio OnRequestAbort (que não sinaliza uma transição para Pausada) e, em seguida, notificado por .OnNotifyPaused

  • Uma exceção no fluxo de trabalho não foi detectada e escapou da raiz. O host será notificado por meio do OnNotifyUnhandledException método.

  • O agendador ficou sem itens de trabalho e agora Idleestá . O host será notificado por meio do OnNotifyPaused método. Observe que o agendador pode ter ficando sem itens de trabalho porque a instância está ociosa ou porque a instância está concluída. O State valor da Controller propriedade pode ser usado para diferenciar entre os dois.

O host pode solicitar uma alteração de Execução para Pausada chamando os RequestPause métodos da WorkflowInstance.WorkflowInstanceControlPauseWhenPersistable instância retornados Controller pela propriedade. Essa solicitação não deve ser considerada como tendo uma resposta específica, o que significa que o host não deve tentar correlacionar um OnNotify* ou OnRequestAbort com uma chamada específica para pausar. Em resposta a uma solicitação de pausa, o runtime pode fazer a transição para Pausado e chamar OnNotifyPaused enquanto o agendador ainda tem itens de trabalho pendentes. O State valor da Controller propriedade pode ser usado para determinar se o agendador não tem mais trabalho ou foi interrompido por uma solicitação para pausar.

O RequestPause método da WorkflowInstance.WorkflowInstanceControl instância retornada pela Controller propriedade é o único método que pode ser chamado enquanto o WorkflowInstance está no estado em execução. Todos os outros métodos lançarão um InvalidOperationException se chamado. Dadas as regras de como WorkflowInstance as transições de um estado para outro, a noção pública de Execução e Pausada pode ser definida da seguinte maneira:

  • Em execução – o estado entre uma chamada e Run o próximo WorkflowInstance.OnNotify*.

  • Pausado - O estado entre o último WorkflowInstance.OnNotify* e a próxima chamada para Run.

Construtores

Nome Description
WorkflowInstance(Activity, WorkflowIdentity)

Inicializa uma nova instância da WorkflowInstance classe com a definição de fluxo de trabalho e a identidade de definição especificadas.

WorkflowInstance(Activity)

Inicializa uma nova instância da WorkflowInstance classe com a definição de fluxo de trabalho especificada.

Propriedades

Nome Description
Controller

Obtém a WorkflowInstance.WorkflowInstanceControl instância para isso WorkflowInstance.

DefinitionIdentity

Obtém ou define a identidade de definição de WorkflowInstance.

HostEnvironment

Obtém ou define o ambiente raiz para os argumentos e variáveis da instância de fluxo de trabalho.

Id

Obtém o identificador exclusivo para a instância de fluxo de trabalho.

IsReadOnly

Obtém um valor que indica se a instância do fluxo de trabalho foi inicializada.

SupportsInstanceKeys

Obtém um valor que indica se o host dá suporte à associação de uma instância em InstanceKeys tempo de execução.

SynchronizationContext

Obtém ou define o SynchronizationContext usado para agendar a instância do fluxo de trabalho.

WorkflowDefinition

Obtém a definição de fluxo de trabalho da instância de fluxo de trabalho.

Métodos

Nome Description
BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object)

Chamado pelo runtime do fluxo de trabalho para começar a enviar registros de acompanhamento pendentes para acompanhar os participantes de forma assíncrona.

DisposeExtensions()

Chama Dispose() todas as extensões que implementam IDisposable.

EndFlushTrackingRecords(IAsyncResult)

Chamado pelo runtime do fluxo de trabalho para encerrar a operação de rastreamento.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
FlushTrackingRecords(TimeSpan)

Chamado pelo runtime do fluxo de trabalho para enviar registros de acompanhamento pendentes para os participantes de rastreamento.

GetActivitiesBlockingUpdate(Object, DynamicUpdateMap)

Recupera a lista de atividades que está bloqueando a atualização do fluxo de trabalho.

GetExtension<T>()

Retorna uma extensão do tipo especificado.

GetExtensions<T>()

Retorna todas as extensões encontradas para o tipo especificado.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

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

Chamado pelo host para inicializar a instância de fluxo de trabalho com os valores de argumento e as propriedades de execução.

Initialize(Object, DynamicUpdateMap)

Chamado pelo host para inicializar a instância de fluxo de trabalho com o estado de tempo de execução do fluxo de trabalho e o mapa de atualização.

Initialize(Object)

Chamado pelo host para inicializar a instância de fluxo de trabalho com o estado de tempo de execução do fluxo de trabalho.

MemberwiseClone()

Cria uma cópia superficial do Objectatual.

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

Chamado pelo runtime do fluxo de trabalho para notificar o host de que novas chaves de instância devem ser associadas a essa instância.

OnBeginFlushTrackingRecords(AsyncCallback, Object)

Chamada assíncrona para pedir ao host para liberar registros de acompanhamento pendentes para os participantes de rastreamento.

OnBeginPersist(AsyncCallback, Object)

Chamada assíncrona para pedir ao host que persista o fluxo de trabalho.

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

Chamado pelo runtime do fluxo de trabalho para notificar o host de que uma operação de indicador de retomada está sendo iniciada.

OnDisassociateKeys(ICollection<InstanceKey>)

Chamado pelo runtime do fluxo de trabalho para notificar o host de que um determinado conjunto de chaves de instância não deve mais ser associado a essa instância.

OnEndAssociateKeys(IAsyncResult)

Chamado pelo runtime do fluxo de trabalho para notificar o host de que uma operação de chaves associadas está concluída.

OnEndFlushTrackingRecords(IAsyncResult)

Chamado pelo runtime do fluxo de trabalho para notificar o host quando a operação de liberação de registros de rastreamento for concluída.

OnEndPersist(IAsyncResult)

Chamado pelo runtime do fluxo de trabalho para notificar o host de que uma operação de persistência está concluída.

OnEndResumeBookmark(IAsyncResult)

Chamado pelo runtime do fluxo de trabalho para notificar o host de que uma operação de indicador de retomada está concluída.

OnNotifyPaused()

Chamado pelo runtime do fluxo de trabalho para notificar o host de que a instância do fluxo de trabalho fez a transição do estado em execução para o estado pausado.

OnNotifyUnhandledException(Exception, Activity, String)

Chamado pelo runtime do fluxo de trabalho para notificar o host, ocorreu uma exceção sem tratamento na instância do fluxo de trabalho.

OnRequestAbort(Exception)

Chamado pelo runtime do fluxo de trabalho para notificar o host de que uma operação de anulação foi solicitada para a instância de fluxo de trabalho.

RegisterExtensionManager(WorkflowInstanceExtensionManager)

Chamado pelo host para registrar o gerenciador de extensões especificado, valide se todas as extensões necessárias estão presentes e para inicializar a coleção de extensões a serem usadas.

ThrowIfReadOnly()

Gerará um InvalidOperationException se a instância de fluxo de trabalho tiver sido inicializada, conforme determinado por IsReadOnly.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a