Compartilhar via


Designer de atividade ParallelForEach

A atividade de ParallelForEach<T> enumera os elementos de uma coleção e executa uma declaração inserido para cada elemento da coleção paralelamente, que está de forma assíncrona no mesmo segmento. Use esta atividade do controle de fluxo em vez de atividade de Sequence se as atividades filhos desta atividade são esperadas ir ociosa.

A atividade ParallelForEach<T> tem uma propriedade CompletionCondition que contém uma expressão do Visual Basic especificada pelo usuário. A atividade de ParallelForEach<T> avalia essa propriedade após cada ramificação completa. Se for avaliada como true, então a atividade ParallelForEach<T> será concluída sem executar as outras ramificações. Se CompletionCondition não for avaliada como true, a atividade ParallelForEach<T> será concluída após a conclusão de todas as atividades filho.

A atividade ParallelForEach<T>

ParallelForEach<T> enumera os valores dela e agenda o Body para cada valor enumerado. Agenda somente Body. Como o corpo executa depende se Body vai ociosa.

Se Body não vai ociosa, executa em uma ordem inversa como as atividades agendados são tratadas como uma pilha, a atividade agendada a última executa primeiro. Por exemplo, se você tiver uma coleção de {1,2,3,4} em ParallelForEach<T> e usar uma WriteLine como o corpo para gravar o valor, você terá 4, 3, 2, 1 impressos no console. Isso ocorre porque WriteLine não fica ociosa, então após quatro atividades WriteLine terem sido agendadas, elas foram executadas usando um comportamento da pilha (primeiro a entrar, último a sair).

Mas se você tiver atividades em Body que pode ir ociosa, como uma atividade de Receive ou a atividade de Delay . Em seguida não há necessidade de esperar que eles terminem concluir. ParallelForEach<T> acessa a próxima atividade de corpo agendada e tenta executá-la. Se a atividade ociosa vai além disso, ParallelForEach<T> move novamente em atividade de corpo seguir.

Usar o designer de atividades ParallelForEach<T>

Acesse o designer de atividades ParallelForEach<T> na categoria Fluxo de Controle da Caixa de Ferramentas.

O designer de atividades ParallelForEach<T> pode ser arrastado da Caixa de Ferramentas e ser solto sobre a superfície do Designer de Fluxo de Trabalho onde quer que os designers de atividades são colocados normalmente, por exemplo, em um designer de atividades de Sequência. Depois de soltá-lo no Designer de Fluxo de Trabalho, ele cria uma atividade ParallelForEach<T>, que por padrão contém um DisplayName de ParallelForEach<Int32>.

Propriedades de ParallelForEach<T> no Designer de Fluxo de Trabalho

A tabela a seguir mostra as propriedades mais úteis de atividade de ParallelForEach<T> e descreve como elas são usadas no designer.

Nome da propriedade Obrigatório Uso
DisplayName Falso Especifica o nome amigável para exibição do designer de atividade no cabeçalho. O valor padrão é ParallelForEach<Int32>. O valor opcionalmente pode ser editado na grade de Propriedades ou diretamente no cabeçalho do designer de atividades.
Body Falso A atividade a executar para cada item na coleção. Para adicionar a atividade Body, solte uma atividade da caixa de ferramentas na caixa Corpo no designer de atividades ParallelForEach<T> com o texto de dica “Solte a Atividade Aqui”.
TypeArgument verdadeiro O tipo dos itens na coleção Values especificado pelo parâmetro genérico T. Por padrão, TypeArgument é definido como Int32. Para alterar o tipo T no designer de atividades ParallelForEach<T>, altere o valor de caixa de combinação TypeArgument na grade de propriedades.
Values True A coleção de itens para iterar. Para definir Values, digite uma expressão do Visual Basic na caixa Valores no designer de atividades ForEach<T> na caixa com o texto de dica “Digite uma expressão do VB” ou na caixa Valores na janela Propriedades.
CompletionCondition Avaliado após cada iteração completa. Se avalia para retificar, então o agendada durante iterações é cancelado. Se esta propriedade não for definida, todas as instruções agendados executam até a conclusão.

Por padrão, o iterador do loop é chamado item. Você pode alterar o nome da variável de iterador na caixa ForEach, no designer de atividades ParallelForEach<T>. O iterador do loop pode ser usado em expressões nos filhos de atividade de ParallelForEach<T> .

Confira também