WorkflowInstance Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
WorkflowInstance é um tempo de execução leve, por instância, para executar um programa de workflow. Pode ser construído para criar uma nova instância de fluxo de trabalho ou a partir do estado da instância existente. As APIs que WorkflowInstance.WorkflowInstanceControl expõem são o conjunto mínimo de controlos em tempo de execução a partir do qual operações de nível superior podem ser implementadas. Este conjunto de APIs representa toda a amplitude de funcionalidades do runtime. WorkflowInstance é uma classe abstrata e depende da implementação dos seus métodos abstratos por parte do host para fornecer funcionalidades como sincronização, persistência, rastreamento e extensões.
public ref class WorkflowInstance abstract
public abstract class WorkflowInstance
type WorkflowInstance = class
Public MustInherit Class WorkflowInstance
- Herança
-
WorkflowInstance
- Derivado
Observações
WorkflowInstance é singlethreaded e assume que o host sincroniza todos os acessos a ela. Uma tentativa de chamar múltiplas APIs simultaneamente resultará num InvalidOperationException lançamento.
Internamente, a WorkflowInstance tem dois estados: A Correr e Pausado. A única forma de fazer com que o tempo de execução passe de pausado para em execução é chamar Run. Todas as ações (exceto Pausa) só podem ser realizadas enquanto o tempo de execução está Pausado. O tempo de execução ficará espontaneamente pausado nas seguintes situações:
Ocorreu um erro fatal para o tempo de execução. O host será sinalizado através OnRequestAbort de (o que não sinaliza uma transição para Pausado) e depois notificado através OnNotifyPausedde .
Uma exceção no fluxo de trabalho foi desapanhada e escapou da raiz. O anfitrião será notificado através do OnNotifyUnhandledException método.
O agendador ficou sem itens de trabalho e agora Idleestá . O anfitrião será notificado através do OnNotifyPaused método. Note que o escalonador pode ter ficado sem itens de trabalho porque a instância está inativa ou porque a instância está completa. O State valor da Controller propriedade pode ser usado para diferenciar entre os dois.
O host pode pedir uma alteração de Em Execução para Pausado, chamando os RequestPause métodos ou PauseWhenPersistable da WorkflowInstance.WorkflowInstanceControl instância devolvida pela Controller propriedade. Este pedido não deve ser considerado como tendo uma resposta específica, o que significa que o anfitrião não deve tentar correlacionar um OnNotify* nem OnRequestAbort com uma chamada específica para pausa. Em resposta a um pedido de pausa, o tempo de execução pode transitar 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 se foi interrompido por um pedido de pausa.
O RequestPause método da WorkflowInstance.WorkflowInstanceControl instância devolvida pela Controller propriedade é o único método que pode ser chamado enquanto o WorkflowInstance está no estado Running. Todos os outros métodos vão lançar um InvalidOperationException lançamento se forem chamados. Dadas as regras sobre como WorkflowInstance as transições de um estado para outro, a noção pública de Running e Paused pode ser definida da seguinte forma:
Running - O estado entre uma chamada para Run e a próxima WorkflowInstance.OnNotify*.
Paused - O estado entre o último WorkflowInstance.OnNotify* e a próxima chamada para Run.
Construtores
| Name | Description |
|---|---|
| WorkflowInstance(Activity, WorkflowIdentity) |
Inicializa uma nova instância da WorkflowInstance classe com a definição e identidade de definição do fluxo de trabalho especificadas. |
| WorkflowInstance(Activity) |
Inicializa uma nova instância da WorkflowInstance classe com a definição de fluxo de trabalho especificada. |
Propriedades
| Name | Description |
|---|---|
| Controller |
Obtém a WorkflowInstance.WorkflowInstanceControl instância para isto 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 do workflow. |
| Id |
Obtém o identificador único da instância do workflow. |
| IsReadOnly |
Recebe um valor que indica se a instância do workflow foi inicializada. |
| SupportsInstanceKeys |
Obtém um valor que indica se o host suporta a associação de InstanceKeys com uma instância em tempo de execução. |
| SynchronizationContext |
Obtém ou define o SynchronizationContext que é usado para agendar a instância do fluxo de trabalho. |
| WorkflowDefinition |
Obtém a definição do fluxo de trabalho da instância do workflow. |
Métodos
| Name | Description |
|---|---|
| BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object) |
Chamado pelo tempo de execução do workflow para começar a enviar registos de rastreio pendentes aos participantes de seguimento de forma assíncrona. |
| DisposeExtensions() |
Chamadas Dispose() a todas as extensões que implementam IDisposable. |
| EndFlushTrackingRecords(IAsyncResult) |
Chamado pelo tempo de execução do fluxo de trabalho para terminar a operação da pista. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| FlushTrackingRecords(TimeSpan) |
Chamado pelo tempo de execução do fluxo de trabalho para enviar registos de rastreio pendentes aos participantes que acompanham. |
| GetActivitiesBlockingUpdate(Object, DynamicUpdateMap) |
Recupera a lista de atividades que estão a bloquear a atualização do fluxo de trabalho. |
| GetExtension<T>() |
Devolve uma extensão do tipo especificado. |
| GetExtensions<T>() |
Retorna todas as extensões encontradas para o tipo especificado. |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| Initialize(IDictionary<String,Object>, IList<Handle>) |
Chamado pelo anfitrião para inicializar a instância do workflow com os valores do argumento e as propriedades de execução. |
| Initialize(Object, DynamicUpdateMap) |
Chamado pelo anfitrião para inicializar a instância do workflow com o estado de execução do workflow e atualizar o mapa. |
| Initialize(Object) |
Chamado pelo anfitrião para inicializar a instância do workflow com o estado de execução do workflow. |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| OnBeginAssociateKeys(ICollection<InstanceKey>, AsyncCallback, Object) |
Chamado pelo tempo de execução do workflow para notificar o host que novas chaves de instância devem ser associadas a esta instância. |
| OnBeginFlushTrackingRecords(AsyncCallback, Object) |
Chamada assíncrona para pedir ao anfitrião que limpe os registos de rastreio pendentes para os participantes que acompanham. |
| OnBeginPersist(AsyncCallback, Object) |
Chamada assíncrona para pedir ao anfitrião que persista o fluxo de trabalho. |
| OnBeginResumeBookmark(Bookmark, Object, TimeSpan, AsyncCallback, Object) |
É chamado pelo tempo de execução do workflow para notificar o host que uma operação de retomar favoritos está a começar. |
| OnDisassociateKeys(ICollection<InstanceKey>) |
É chamado pelo tempo de execução do workflow para notificar o host que um determinado conjunto de chaves de instância já não deve estar associado a esta instância. |
| OnEndAssociateKeys(IAsyncResult) |
Chamado pelo tempo de execução do workflow para notificar o host que uma operação de chaves associadas está concluída. |
| OnEndFlushTrackingRecords(IAsyncResult) |
Chamado pelo tempo de execução do workflow para notificar o host quando a operação de rastreio de limpeza dos registos está concluída. |
| OnEndPersist(IAsyncResult) |
Chamado pelo tempo de execução do workflow para notificar o host que uma operação persiste está completa. |
| OnEndResumeBookmark(IAsyncResult) |
Chamado pelo tempo de execução do workflow para notificar o host que uma operação de retomar favoritos está concluída. |
| OnNotifyPaused() |
Chamado pelo tempo de execução do workflow para notificar o host que a instância do workflow transitou do estado em execução para o estado pausado. |
| OnNotifyUnhandledException(Exception, Activity, String) |
Chamada pelo tempo de execução do workflow para notificar o anfitrião que ocorreu uma exceção não tratada na instância do workflow. |
| OnRequestAbort(Exception) |
Chamado pelo tempo de execução do workflow para notificar o host que foi solicitada uma operação de aborto para a instância do workflow. |
| RegisterExtensionManager(WorkflowInstanceExtensionManager) |
Chamado pelo host para registar o gestor de extensões especificado, validar que todas as extensões necessárias estão presentes e inicializar a coleção de extensões a utilizar. |
| ThrowIfReadOnly() |
Lança um InvalidOperationException se a instância do fluxo de trabalho tiver sido inicializada, conforme determinado por IsReadOnly. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |