Fluxos de trabalho do computador de estado

Um computador de estado é um paradigma conhecido para programas desenvolvimento. A atividade de StateMachine , juntamente com State, Transition, e outras atividades pode ser usada para criar programas de fluxo de trabalho do computador de estado. Este tópico fornece uma visão geral de criar fluxos de trabalho do computador de estado.

Visão geral de fluxo de trabalho do computador de estado

Fluxos de trabalho do computador de estado fornecem um estilo modelagem com que você pode modelar seu fluxo de trabalho em uma maneira de baseada. Uma atividade de StateMachine contém os estados e as transições que compõem a lógica do computador de estado, e pode ser usada em qualquer lugar uma atividade pode ser usada. Há várias classes no runtime do computador de estado:

Para criar um fluxo de trabalho de máquina de estado, os Estados são adicionados a uma StateMachine atividade e as transições são usadas para controlar o fluxo entre os Estados. A captura de tela a seguir, da etapa introdução tutorialcomo criar um fluxo de trabalho de máquina de estado, mostra um fluxo de trabalho de máquina de estado com três Estados e três transições. Inicializar destino é o estado inicial e representa o primeiro estado no fluxo de trabalho. Isso é designado pela linha que a leva para o nó inicial . O estado final no fluxo de trabalho é chamado de FinalStatee representa o ponto no qual o fluxo de trabalho é concluído.

Illustration that shows the completed state machine workflow.

Um fluxo de trabalho do computador de estado deve ter um e somente um estados iniciais, e pelo menos um estados finais. Cada estado que não é um estado final deve ter pelo menos uma transição. As seções a seguir abordam como criar e configurar de estados e das transições.

Criando e configurando estados

State representa um estado em que um computador de estado pode estar. para adicionar um State a um fluxo de trabalho, arraste o designer de atividade de State da seção máquina de estado da caixa de ferramentas e solte-o em uma atividade na superfície de Designer de Fluxo de Trabalho Windows.

Screenshot of the State Machine section of the Toolbox.

Para configurar um estado como o estado inicial, clique com o botão direito do mouse no estado e selecione definir como estado inicial. Além disso, se não houver nenhum estado inicial atual, o estado inicial poderá ser designado arrastando-se uma linha do nó inicial na parte superior do fluxo de trabalho até o estado desejado. Quando uma StateMachine atividade é descartada no designer de fluxo de trabalho, ela é pré-configurada com um estado inicial chamado StateMachine. Um fluxo de trabalho do computador de estado deve ter um e somente um estados iniciais.

Um estado que representa um estado de terminação em um computador de estado é chamado um estado final. Um estado final é um estado que tem sua propriedade de IsFinal definida como true, não tem nenhuma atividade de Exit , e nenhuma transição que se origina delas. para adicionar um estado final a um fluxo de trabalho, arraste um designer de atividades finalstate da seção máquina de estado da caixa de ferramentas e solte-o em uma atividade na superfície de Designer de Fluxo de Trabalho Windows. Um fluxo de trabalho do computador de estado deve ter pelo menos um estado final.

Configurando ações de entrada e de saída

Um estado pode ter Entry e uma ação de Exit . (O estado de configurado como um estado final pode ter apenas uma ação de entrada). Quando uma instância de fluxo de trabalho entra em um estado, todas as atividades em ação de entrada são executadas. Quando a ação de entrada for concluída, os gatilhos para as transições do estado serão agendados. Quando uma transição para outro estado é confirmada, as atividades em ação de saída são executadas, mesmo se o estado faz a transição de volta ao mesmo estado. Após a conclusão da ação de saída, as atividades na ação da transição são executadas e, em seguida, o novo estado é transferido para, e suas ações de entrada são agendadas.

Observação

Para depurar um fluxo de trabalho do computador de estado, pontos de interrupção podem ser colocados na atividade e os estados do computador de estado da raiz no fluxo de trabalho do computador de estado. Os pontos de interrupção não podem ser colocados diretamente nas transições, mas podem ser colocados em todas as atividades contidas nos estados e as transições.

Criando e configurando as transições

Todos os Estados devem ter pelo menos uma transição, exceto para um estado final, que pode não ter transições. Transições podem ser adicionadas após um estado é adicionado a um fluxo de trabalho do computador de estado, ou podem ser criadas como o estado são soltas.

Para adicionar um State e criar uma transição em uma única etapa, arraste uma atividade de State da seção máquina de estado da caixa de ferramentas e passe o mouse sobre outro Estado no designer de fluxo de trabalho. Quando State arrastado está sobre um outro State, quatro triângulos aparecerão em torno do outro State. Se State é solto em um dos quatro triângulos, é adicionado ao computador de estado e uma transição é criada de origem State ao destino solto State. Para obter mais informações, consulte o Designer de atividade de transição.

Para criar uma transição após um estado é adicionado, existem duas opções. A primeira opção é arraste o estado da superfície do designer de fluxo de trabalho e focalizar-lo sobre um estado existente e solte-o em um dos pontos da operação. Isso é semelhante ao método descrito na seção anterior. Você pode também passa o mouse sobre o estado desejado de origem, e arraste uma linha para o estado desejado de destino.

Observação

Um único estado em um computador de estado pode ter até 76 transições criadas utilizando o designer de fluxo de trabalho. O limite nas transições para um estado para fluxos de trabalho criados fora de designer é delimitado somente por recursos do sistema.

Uma transição pode ter Trigger, Condition, e Action. Uma transição Trigger é agendada quando a ação do estado Entry de origem da transição é concluída. Normalmente Trigger é uma atividade que espera qualquer tipo de evento ocorra, mas pode ser qualquer atividade, ou nenhuma atividade de todo. Uma vez que a atividade de Trigger estiver concluída, Condition, se presentes, é avaliada. Se não houver nenhuma Trigger atividade, o Condition será avaliado imediatamente. Se a condição for avaliada como false , a transição será cancelada e a Trigger atividade de todas as transições do estado será reagendada. Se houver outras transições que compartilham o mesmo estado de origem da transição atual, essas Trigger ações serão canceladas e reagendadas também. Se Condition avalia a true, ou não há nenhuma condição, então a ação de Exit de estado de origem é executada, e Action de transição é executado em seguida. Quando o é concluído, o Action controle passa para o estado de Action

Faz a transição que compartilham um disparador comum é conhecido como o disparador compartilhado transições. Cada transição em um grupo de transições compartilhadas do disparador tem o mesmo disparador, mas Condition e uma ação exclusivos. Para adicionar ações adicionais para uma transição e criar uma transição compartilhada, clique no círculo que indica o início de transição desejada e arraste-o para estado desejado. A nova transição compartilhar um disparador mesmo que a transição inicial, mas terá uma condição e uma ação exclusivos. As transições compartilhadas também podem ser criadas de dentro do designer de transição clicando em Adicionar transição de gatilho compartilhado na parte inferior do designer de transição e, em seguida, selecionando o estado de destino desejado na lista suspensa Estados disponíveis para conexão .

Observação

Observe que se Condition de uma transição for avaliada como False (ou todas as condições de uma transição do gatilho compartilhada for avaliada como False), a transição não ocorrerá e todos os gatilhos para todas as transições de estado serão reprogramados.

Para obter mais informações sobre como criar fluxos de trabalho de máquina de estado, consulte como criar um fluxo de trabalho de máquina de estado, StateMachine designer de atividade, designer de atividade de estado, designer de atividade FinalStatee designer de atividade de transição.

Terminologia do computador de estado

Esta seção define o vocabulário do computador de estado usado em todo este tópico.

Estado
A unidade básica que compõem um computador de estado. Um computador de estado pode estar em um estado em todas as hora.

Ação de entrada
Uma atividade executada ao inserir no estado

Ação de saída
Uma atividade executada quando deixar o estado

Transição
Uma relação direcionada entre dois Estados que representa a resposta completa de um computador de estado para uma ocorrência de um evento de um tipo específico.

Transição compartilhada
Uma transição que compartilhar um estado de origem e o disparador com um ou mais faz a transição, mas tem uma condição e uma ação exclusivos.

Gatilho
Uma atividade disparando que faz com que uma transição ocorre.

Condição
Uma restrição que deve ser true avaliada após o gatilho ocorrer para que a transição seja concluída.

Ação de transição
Uma atividade que é executada durante a execução de uma determinada transição.

Transição condicional
Uma transição com uma condição explícita.

Dica transição
Uma transição que está em trânsito de um estado para si mesmo.

Estado Inicial
Um estado que representa o ponto inicial da máquina de estado.

Estado final
Um estado que representa a conclusão da máquina de estado.

Confira também