ParallelForEach<T> Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Enumera os elementos de uma coleção e executa uma instrução embutida 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 Genérico
- T
O tipo dos valores fornecidos na Values coleção.
- Herança
- Atributos
Exemplos
O exemplo de código seguinte demonstra como criar uma ParallelForEach<T> atividade. Este exemplo é do exemplo do 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)
}
},
}
}
}
},
Observações
As instruções incorporadas são agendadas em conjunto e executadas de forma assíncrona, mas a menos que as próprias atividades agendadas sejam assíncronas (como atividades de mensagens, InvokeMethod, ou atividades derivadas de AsyncCodeActivity), não correm em threads separados, pelo que cada atividade sucessiva só será executada quando a atividade previamente agendada terminar ou ficar inativa. Se nenhuma das atividades filhas desta atividade for assíncrona ou ficar inativa, esta atividade é executada da mesma forma que uma ForEach<T> atividade.
Construtores
| Name | Description |
|---|---|
| ParallelForEach<T>() |
Cria uma nova instância da ParallelForEach<T> classe. |
Propriedades
| Name | Description |
|---|---|
| Body |
O ActivityAction que é executado uma vez para cada valor contido na Values coleção. |
| CacheId |
Obtém o identificador da cache que é único dentro do âmbito da definição do workflow. (Herdado de Activity) |
| CanInduceIdle |
Recebe ou define um valor que indica se a atividade pode fazer com que o fluxo de trabalho fique inativo. (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 |
Recebe ou define um nome amigável opcional que é usado para depuração, validação, tratamento de exceções e rastreio. (Herdado de Activity) |
| Id |
Obtém um identificador que é único no âmbito da definição do fluxo de trabalho. (Herdado de Activity) |
| Implementation |
A lógica de execução da atividade. (Herdado de NativeActivity) |
| ImplementationVersion |
Recebe ou define a versão de implementação da atividade. (Herdado de NativeActivity) |
| Values |
A coleção de valores usada como parâmetros para cada iteração da atividade contida no Body. |
Métodos
| Name | Description |
|---|---|
| Abort(NativeActivityAbortContext) |
Quando implementado numa classe derivada, toma ações em resposta à atividade abortada. (Herdado de NativeActivity) |
| CacheMetadata(ActivityMetadata) |
Não implementado. Use o CacheMetadata(NativeActivityMetadata) método em vez disso. (Herdado de NativeActivity) |
| CacheMetadata(NativeActivityMetadata) |
Cria e valida uma descrição dos argumentos, variáveis, atividades filhos e delegados de atividade da atividade. (Herdado de NativeActivity) |
| Cancel(NativeActivityContext) |
Quando implementado numa classe derivada, executa lógica para garantir uma conclusão precoce e graciosa da atividade. (Herdado de NativeActivity) |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| Execute(NativeActivityContext) |
Quando implementado numa classe derivada, executa a lógica de execução da atividade. (Herdado de NativeActivity) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity) |
Abre um evento ao criar um mapa para a atualização dinâmica. (Herdado de NativeActivity) |
| OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity) |
Abre 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() |
Devolve 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) |