Partilhar via


ParallelForEach<T> Classe

Definição

Enumera os elementos de uma coleção e executa uma declaração inserida para cada elemento da coleção em paralelo.

generic <typename T>
public ref class ParallelForEach sealed : System::Activities::NativeActivity
[System.Windows.Markup.ContentProperty("Body")]
public sealed class ParallelForEach<T> : System.Activities.NativeActivity
[<System.Windows.Markup.ContentProperty("Body")>]
type ParallelForEach<'T> = class
    inherit NativeActivity
Public NotInheritable Class ParallelForEach(Of T)
Inherits NativeActivity

Parâmetros de tipo

T

O tipo dos valores fornecidos na coleção Values.

Herança
ParallelForEach<T>
Atributos

Exemplos

O exemplo de código a seguir demonstra a criação de uma ParallelForEach<T> atividade. Este exemplo é do exemplo processo de compra corporativa .

// invite all vendors and wait for their proposals
new ParallelForEach<Vendor>
{
    DisplayName = "Get vendor proposals",
    Values = new InArgument<IEnumerable<Vendor>>(ctx =>this.Rfp.Get(ctx).InvitedVendors),
    Body = new ActivityAction<Vendor>()
    {
        Argument = iterationVariableVendor,
        Handler = new Sequence
        {
            Variables = { tmpValue },
            Activities =
            {
                // waits for a vendor proposal (creates a bookmark for a vendor)
                new WaitForVendorProposal
                {
                    VendorId = new LambdaValue<int>(ctx =>iterationVariableVendor.Get(ctx).Id) ,
                    Result = new OutArgument<double>(tmpValue)
                },

                // after the vendor proposal is received, it is registered in the Request for Proposals
                new InvokeMethod
                {
                    TargetObject = new InArgument<RequestForProposal>(ctx =>this.Rfp.Get(ctx)),
                    MethodName = "RegisterProposal",
                    Parameters =
                    {
                        new InArgument<Vendor>(iterationVariableVendor),
                        new InArgument<double>(tmpValue)
                    }
                },
            }
        }
    }
},

Comentários

As instruções inseridas são agendadas juntas e executadas de forma assíncrona, mas, a menos que as próprias atividades agendadas sejam assíncronas (como atividades de mensagens, InvokeMethodou atividades derivadas de AsyncCodeActivity), elas não são executadas em threads separados, portanto, cada atividade sucessiva só será executada quando a atividade agendada anteriormente for concluída ou ficar ociosa. Se nenhuma das atividades filho dessa atividade for assíncrona ou ficar ociosa, essa atividade será executada da mesma maneira que uma ForEach<T> atividade.

Construtores

ParallelForEach<T>()

Cria uma nova instância da classe ParallelForEach<T>.

Propriedades

Body

O ActivityAction que é executado uma vez para cada valor contido na coleção Values.

CacheId

Obtém um identificador do cache que é exclusivo no escopo da definição do fluxo de trabalho.

(Herdado de Activity)
CanInduceIdle

Obtém ou define um valor que indica se a atividade pode fazer com que o fluxo de trabalho fique ocioso.

(Herdado de NativeActivity)
CompletionCondition

Avaliado após cada iteração completa.

Constraints

Obtém uma coleção de atividades de Constraint que podem ser configuradas para fornecer validação para a Activity.

(Herdado de Activity)
DisplayName

Obtém ou define um nome amigável opcional que é usado para depuração, validação, manipulação de exceções e acompanhamento.

(Herdado de Activity)
Id

Obtém um identificador que é exclusivo no escopo da definição do fluxo de trabalho.

(Herdado de Activity)
Implementation

A lógica de execução da atividade.

(Herdado de NativeActivity)
ImplementationVersion

Obtém ou define a versão de implementação da atividade.

(Herdado de NativeActivity)
Values

A coleção de valores usados como parâmetros para cada iteração da atividade contida no Body.

Métodos

Abort(NativeActivityAbortContext)

Quando implementado em uma classe derivada, executa ações em resposta à atividade que está sendo anulada.

(Herdado de NativeActivity)
CacheMetadata(ActivityMetadata)

Não implementado. Use o método CacheMetadata(NativeActivityMetadata) em seu lugar.

(Herdado de NativeActivity)
CacheMetadata(NativeActivityMetadata)

Cria e valida uma descrição dos argumentos, das variáveis, das atividades filho e dos representantes da atividade.

(Herdado de NativeActivity)
Cancel(NativeActivityContext)

Quando implementado em uma classe derivada, executa a lógica para causar a conclusão antecipada normal da atividade.

(Herdado de NativeActivity)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Execute(NativeActivityContext)

Quando implementado em uma classe derivada, executa a lógica de execução da atividade.

(Herdado de NativeActivity)
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)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity)

Gera um evento durante a criação de um mapa para a atualização dinâmica.

(Herdado de NativeActivity)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

Gera um evento durante a criação de um mapa para a atualização dinâmica.

(Herdado de NativeActivity)
ShouldSerializeDisplayName()

Indica se a propriedade DisplayName deve ser serializada.

(Herdado de Activity)
ToString()

Retorna um String que contém o Id e DisplayName do Activity.

(Herdado de Activity)
UpdateInstance(NativeActivityUpdateContext)

Atualiza a instância da NativeActivity.

(Herdado de NativeActivity)

Aplica-se a