Compartilhar via


Atividades de fluxo de controle no WF

O .NET Framework 4.6.1 fornece várias atividades para controlar o fluxo de execução em um fluxo de trabalho. Algumas dessas atividades (como Switch e If) implementam estruturas de controle de fluxo semelhantes às de ambientes de programação, como o Visual C#, enquanto outras (como Pick) modelam novas estruturas de programação.

Observe que, embora atividades como as atividades e ParallelForEach as Parallel atividades agendem várias atividades filho para execução simultaneamente, apenas um único thread é usado para um fluxo de trabalho. Cada atividade filho dessas atividades é executada sequencialmente e as atividades sucessivas não são executadas até que as atividades anteriores sejam concluídas ou ociosas. Como resultado, essas atividades são mais úteis para aplicativos nos quais várias atividades potencialmente bloqueadas devem ser executadas de forma intercalada. Se nenhuma das atividades filho dessas atividades ficar ociosa, uma Parallel atividade será executada como uma Sequence atividade e uma ParallelForEach atividade será executada como uma ForEach atividade. Se, no entanto, atividades assíncronas (como atividades que derivam de AsyncCodeActivity) ou atividades de mensagens forem usadas, o controle passará para o próximo branch enquanto a atividade filho aguarda que sua mensagem seja recebida ou seu trabalho assíncrono seja concluído.

Atividades de controle de fluxo

Atividade Descrição
DoWhile Executa as atividades contidas uma vez e continua a fazê-lo enquanto uma condição é true.
ForEach<T> Executa uma instrução inserida em sequência para cada elemento em uma coleção. ForEach<T> é semelhante à palavra-chave foreach, mas é implementada como uma atividade em vez de uma instrução de idioma.
If Executa atividades contidas se uma condição for truee poderá executar atividades contidas na Else propriedade se a condição for false.
Parallel Executa atividades contidas em paralelo.
ParallelForEach<T> Executa uma instrução inserida em paralelo para cada elemento em uma coleção.
Pick Fornece modelagem de fluxo de controle baseada em evento.
PickBranch Representa um caminho potencial de execução em uma Pick atividade.
Sequence Executa atividades contidas na sequência.
Switch<T> Seleciona uma opção de várias atividades a serem executadas, com base no valor de uma determinada expressão.
While Executa atividades contidas enquanto uma condição é true.