ParallelForEach<T> Classe

Definição

Enumera os elementos de uma coleção e executa uma instruçã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 Values coleção.

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 de 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 InvokeMethodde mensagens ou atividades derivadas 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 forma que uma ForEach<T> atividade.

Construtores

Nome Description
ParallelForEach<T>()

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

Propriedades

Nome Description
Body

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

CacheId

Obtém o identificador do cache que é exclusivo dentro do 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 a conclusão de cada iteração.

Constraints

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

(Herdado de Activity)
DisplayName

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

(Herdado de Activity)
Id

Obtém um identificador exclusivo no escopo da definição de 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

Nome Description
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. Em vez disso, use o CacheMetadata(NativeActivityMetadata) método.

(Herdado de NativeActivity)
CacheMetadata(NativeActivityMetadata)

Cria e valida uma descrição dos argumentos, variáveis, atividades filho e delegados de atividades 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 hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity)

Gera um evento ao criar um mapa para a atualização dinâmica.

(Herdado de NativeActivity)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

Gera um evento ao criar um mapa para a atualização dinâmica.

(Herdado de NativeActivity)
ShouldSerializeDisplayName()

Indica se a DisplayName propriedade 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 de NativeActivity.

(Herdado de NativeActivity)

Aplica-se a