Partilhar via


WorkflowInstance Classe

Definição

WorkflowInstance é um runtime por instância leve para executar um programa de fluxo de trabalho. Ele pode ser construído para criar uma nova instância de fluxo de trabalho ou de estado da instância existente. As APIs que o WorkflowInstance.WorkflowInstanceControl expõe são o conjunto mínimo de controles de runtime do qual as operações de nível superior podem ser implementadas. Esse conjunto de APIs representa a largura inteira da funcionalidade do runtime. O WorkflowInstance é uma classe abstrata e se baseia na implementação de um host de seus métodos abstratos para fornecer a funcionalidade do 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 é thread único e pressupõe que o host sincronize todo o acesso a ele. Uma tentativa de chamar várias APIs simultaneamente resultará em um InvalidOperationException ser gerado.

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 de pausado para em execução é chamar Run. Todas as ações (exceto Pause) 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 Pausado) e, em seguida, notificado por meio de 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 Idleé . 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 Executando para Pausado chamando os RequestPause métodos ou PauseWhenPersistable da WorkflowInstance.WorkflowInstanceControl 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. Considerando as regras de como WorkflowInstance faz a transição de um estado para outro, a noção pública de Execução e Pausado pode ser definida da seguinte maneira:

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

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

Construtores

WorkflowInstance(Activity)

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

WorkflowInstance(Activity, WorkflowIdentity)

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

Propriedades

Controller

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

DefinitionIdentity

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

HostEnvironment

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

Id

Obtém o identificador exclusivo da 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 InstanceKeys a uma instância de tempo de execução.

SynchronizationContext

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

WorkflowDefinition

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

Métodos

BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object)

Chamado pelo runtime de fluxo de trabalho para iniciar o envio de registros de acompanhamento pendentes aos participantes de acompanhamento de forma assíncrona.

DisposeExtensions()

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

EndFlushTrackingRecords(IAsyncResult)

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

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
FlushTrackingRecords(TimeSpan)

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

GetActivitiesBlockingUpdate(Object, DynamicUpdateMap)

Recupera a lista de atividade 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)

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

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.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

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

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

OnBeginFlushTrackingRecords(AsyncCallback, Object)

Chamada assíncrona para solicitar que o host libere os registros de acompanhamento pendentes para os participantes do acompanhamento.

OnBeginPersist(AsyncCallback, Object)

Chamada assíncrona para solicitar que o host mantenha o fluxo de trabalho.

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

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

OnDisassociateKeys(ICollection<InstanceKey>)

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

OnEndAssociateKeys(IAsyncResult)

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

OnEndFlushTrackingRecords(IAsyncResult)

Chamado pelo runtime de fluxo de trabalho para notificar o host quando a operação de limpeza de registros de acompanhamento é concluída.

OnEndPersist(IAsyncResult)

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

OnEndResumeBookmark(IAsyncResult)

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

OnNotifyPaused()

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

OnNotifyUnhandledException(Exception, Activity, String)

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

OnRequestAbort(Exception)

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

RegisterExtensionManager(WorkflowInstanceExtensionManager)

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

ThrowIfReadOnly()

Gera um InvalidOperationException se a instância de fluxo de trabalho foi inicializada, conforme determinado por IsReadOnly.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a