ParallelForEach<T> Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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) |