ForEach(TSource, TLocal) Método (IEnumerable(TSource), ParallelOptions, Func(TLocal), Func(TSource, ParallelLoopState, Int64, TLocal, TLocal), Action(TLocal))
TOC
Recolher sumário
Expandir sumário
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Método Parallel.ForEach<TSource, TLocal>(IEnumerable<TSource>, ParallelOptions, Func<TLocal>, Func<TSource, ParallelLoopState, Int64, TLocal, TLocal>, Action<TLocal>)

.NET Framework (current version)
 

Executa um foreach (For Each no Visual Basic) a operação com dados do local de thread e índices de 64 bits em um IEnumerable em que iterações possam ser executadas em paralelo, opções de loop podem ser configuradas e o estado de loop pode ser monitorado e manipulado.

Namespace:   System.Threading.Tasks
Assembly:  mscorlib (em mscorlib.dll)

public static ParallelLoopResult ForEach<TSource, TLocal>(
	IEnumerable<TSource> source,
	ParallelOptions parallelOptions,
	Func<TLocal> localInit,
	Func<TSource, ParallelLoopState, long, TLocal, TLocal> body,
	Action<TLocal> localFinally
)

Parâmetros

source

Uma fonte de dados enumerável.

parallelOptions

Um objeto que define o comportamento dessa operação.

localInit

O delegado de função que retorna o estado inicial de dados locais para cada tarefa.

body

O representante é chamado uma vez por iteração.

localFinally

O delegado que executa uma ação final no estado local de cada tarefa.

Valor de retorno

Type: System.Threading.Tasks.ParallelLoopResult

Uma estrutura que contém informações sobre qual parte do loop concluído.

Parâmetros de tipo

TSource

O tipo de dados na origem.

TLocal

O tipo de dados local de thread.

Exception Condition
ArgumentNullException

O argumento source é null.

-ou-

O argumento parallelOptions é null.

-ou-

O argumento body é null.

-ou-

O argumento localInit é null.

-ou-

O argumento localFinally é null.

OperationCanceledException

O CancellationToken no parallelOptions argumento é cancelado.

ObjectDisposedException

O CancellationTokenSource associado a CancellationToken no parallelOptions foi descartado.

AggregateException

A exceção que contém todas as exceções individuais lançadas em todos os threads.

O body representante é chamado uma vez para cada elemento de source enumerável.Ele é fornecido com os seguintes parâmetros: o elemento atual, um ParallelLoopState instância que pode ser usada para interromper o loop prematuramente, o índice do elemento atual (Int64) e alguns estados local que podem ser compartilhado entre iterações que executam no mesmo thread.

O localInit representante é chamado uma vez para cada tarefa que participa na execução do loop e retorna o estado local inicial para cada uma dessas tarefas.Esses estados iniciais são passados para o primeiro body as invocações de cada tarefa.Em seguida, cada invocação subseqüente corpo retorna um valor de estado possivelmente modificado que é passado para a próxima chamada de corpo.Por fim, a última chamada de corpo em cada tarefa que retorna um valor de estado que é passado para o localFinally delegar.O localFinally representante é chamado uma vez por thread para executar uma ação final no estado local de cada tarefa.Esse delegado pode ser chamado simultaneamente em várias tarefas; Portanto, você deve sincronizar o acesso a todas as variáveis compartilhadas.

O Parallel.ForEach<TSource> método pode usar tarefas mais do que os threads durante a vida útil de sua execução, como a conclusão de tarefas existentes e são substituídos por novas tarefas.Isso fornece a base TaskScheduler objeto a chance de adicionar, alterar ou remover threads que o loop de serviço.

Universal Windows Platform
Disponível desde 4.5
.NET Framework
Disponível desde 4.0
Portable Class Library
Com suporte em: portable .NET platforms
Windows Phone
Disponível desde 8.1
Retornar ao topo
Mostrar:
© 2016 Microsoft