Compartir vía


Parallel Clase

Definición

Proporciona compatibilidad con regiones y bucles paralelos.

public ref class Parallel abstract sealed
public static class Parallel
type Parallel = class
Public Class Parallel
Herencia
Parallel

Ejemplos

En este ejemplo se muestran varios enfoques para implementar un bucle paralelo mediante varias construcciones de lenguaje.

using System.Threading.Tasks;   
class Test
{
    static int N = 1000;

    static void TestMethod()
    {
        // Using a named method.
        Parallel.For(0, N, Method2);

        // Using an anonymous method.
        Parallel.For(0, N, delegate(int i)
        {
            // Do Work.
        });

        // Using a lambda expression.
        Parallel.For(0, N, i =>
        {
            // Do Work.
        });
    }

    static void Method2(int i)
    {
        // Do work.
    }
}
Imports System.Threading.Tasks

Module Module1

    Sub Main()
        Dim N As Integer = 1000

        ' Using a named method
        Parallel.For(0, N, AddressOf Method2)

        ' Using a lambda expression.
        Parallel.For(0, N, Sub(i)
                               ' Do Work
                           End Sub)
    End Sub

    Sub Method2(ByVal i As Integer)
        ' Do work.
    End Sub

End Module

Comentarios

La Parallel clase proporciona reemplazos paralelos de datos basados en biblioteca para operaciones comunes, como bucles for, para cada bucle y ejecución de un conjunto de instrucciones.

Métodos

For(Int32, Int32, Action<Int32,ParallelLoopState>)

Ejecuta una bucle for donde se pueden ejecutar iteraciones en paralelo, y el estado del bucle se puede supervisar y manipular.

For(Int32, Int32, Action<Int32>)

Ejecuta un bucle for en el que es posible ejecutar iteraciones en paralelo.

For(Int32, Int32, ParallelOptions, Action<Int32,ParallelLoopState>)

Ejecuta un bucle for donde se pueden ejecutar iteraciones en paralelo y configurar opciones de bucle, y el estado del bucle se puede supervisar y manipular.

For(Int32, Int32, ParallelOptions, Action<Int32>)

Ejecuta un bucle for en el que se pueden ejecutar iteraciones en paralelo y configurar las opciones de bucle.

For(Int64, Int64, Action<Int64,ParallelLoopState>)

Ejecuta un bucle for con índices de 64 bits en el que es posible ejecutar iteraciones en paralelo, y el estado del bucle se puede supervisar y manipular.

For(Int64, Int64, Action<Int64>)

Ejecuta un bucle for con índices 64 bits en el que se pueden ejecutar iteraciones en paralelo.

For(Int64, Int64, ParallelOptions, Action<Int64,ParallelLoopState>)

Ejecuta un bucle for con índices de 64 bits en el que es posible ejecutar iteraciones en paralelo y configurar opciones de bucle, y el estado del bucle se puede supervisar y manipular.

For(Int64, Int64, ParallelOptions, Action<Int64>)

Ejecuta un bucle for con índices de 64 bits en el que se pueden ejecutar iteraciones en paralelo y configurar opciones de bucle.

For<TLocal>(Int32, Int32, Func<TLocal>, Func<Int32,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

Ejecuta un bucle for con datos locales del subproceso en el que es posible ejecutar iteraciones en paralelo, y el estado del bucle se puede supervisar y manipular.

For<TLocal>(Int32, Int32, ParallelOptions, Func<TLocal>, Func<Int32,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

Ejecuta un bucle for con datos locales del subproceso en que es posible ejecutar iteraciones en paralelo, se pueden configurar opciones de bucle, y el estado del bucle se puede supervisar y manipular.

For<TLocal>(Int64, Int64, Func<TLocal>, Func<Int64,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

Ejecuta un bucle for con índices de 64 bits y datos locales del subproceso en el que es posible ejecutar iteraciones en paralelo, y el estado del bucle se puede supervisar y manipular.

For<TLocal>(Int64, Int64, ParallelOptions, Func<TLocal>, Func<Int64,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

Ejecuta un bucle for con índices de 64 bits y datos locales del subproceso en el que es posible ejecutar iteraciones en paralelo, se pueden configurar opciones de bucle, y el estado del bucle se puede supervisar y manipular.

ForAsync<T>(T, T, CancellationToken, Func<T,CancellationToken,ValueTask>)

Ejecuta un bucle for en el que se pueden ejecutar iteraciones en paralelo.

ForAsync<T>(T, T, Func<T,CancellationToken,ValueTask>)

Ejecuta un bucle for en el que se pueden ejecutar iteraciones en paralelo.

ForAsync<T>(T, T, ParallelOptions, Func<T,CancellationToken,ValueTask>)

Ejecuta un bucle for en el que se pueden ejecutar iteraciones en paralelo.

ForEach<TSource,TLocal>(IEnumerable<TSource>, Func<TLocal>, Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>, Action<TLocal>)

Ejecuta una operación foreach (For Each en Visual Basic) con datos locales del subproceso en IEnumerable donde se pueden ejecutar iteraciones en paralelo, y el estado del bucle se puede supervisar y manipular.

ForEach<TSource,TLocal>(IEnumerable<TSource>, Func<TLocal>, Func<TSource,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

Ejecuta una operación foreach (For Each en Visual Basic) con datos locales del subproceso en IEnumerable donde se pueden ejecutar iteraciones en paralelo, y el estado del bucle se puede supervisar y manipular.

ForEach<TSource,TLocal>(IEnumerable<TSource>, ParallelOptions, Func<TLocal>, Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>, Action<TLocal>)

Ejecuta una operación foreach (For Each en Visual Basic) con índices de 64 bits y datos locales del subproceso en IEnumerable donde se pueden ejecutar iteraciones en paralelo y configurar opciones de bucle, y el estado del bucle se puede supervisar y manipular.

ForEach<TSource,TLocal>(IEnumerable<TSource>, ParallelOptions, Func<TLocal>, Func<TSource,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

Ejecuta una operación foreach (For Each en Visual Basic) con datos locales del subproceso en IEnumerable donde se pueden ejecutar iteraciones en paralelo y configurar opciones de bucle, y el estado del bucle se puede supervisar y manipular.

ForEach<TSource,TLocal>(OrderablePartitioner<TSource>, Func<TLocal>, Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>, Action<TLocal>)

Ejecuta una operación foreach (For Each en Visual Basic) con datos locales del subproceso en OrderablePartitioner<TSource> donde se pueden ejecutar iteraciones en paralelo y configurar opciones de bucle, y el estado del bucle se puede supervisar y manipular.

ForEach<TSource,TLocal>(OrderablePartitioner<TSource>, ParallelOptions, Func<TLocal>, Func<TSource,ParallelLoopState,Int64,TLocal,TLocal>, Action<TLocal>)

Ejecuta una foreach operación (For Each en Visual Basic) con índices de 64 bits y con datos locales de subprocesos en un OrderablePartitioner<TSource> en el que se pueden ejecutar iteraciones en paralelo, se pueden configurar las opciones de bucle y el estado del bucle se puede supervisar y manipular.

ForEach<TSource,TLocal>(Partitioner<TSource>, Func<TLocal>, Func<TSource,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

Ejecuta una operación foreach (For Each en Visual Basic) con datos locales del subproceso en Partitioner donde se pueden ejecutar iteraciones en paralelo, y el estado del bucle se puede supervisar y manipular.

ForEach<TSource,TLocal>(Partitioner<TSource>, ParallelOptions, Func<TLocal>, Func<TSource,ParallelLoopState,TLocal,TLocal>, Action<TLocal>)

Ejecuta una operación foreach (For Each en Visual Basic) con datos locales del subproceso en Partitioner donde se pueden ejecutar iteraciones en paralelo y configurar opciones de bucle, y el estado del bucle se puede supervisar y manipular.

ForEach<TSource>(IEnumerable<TSource>, Action<TSource,ParallelLoopState,Int64>)

Ejecuta una operación foreach (For Each en Visual Basic) con índices de 64 bits en IEnumerable donde se pueden ejecutar iteraciones en paralelo, y el estado del bucle se puede supervisar y manipular.

ForEach<TSource>(IEnumerable<TSource>, Action<TSource,ParallelLoopState>)

Ejecuta una operación foreach (For Each en Visual Basic) en IEnumerable donde se pueden ejecutar iteraciones en paralelo, y el estado del bucle se puede supervisar y manipular.

ForEach<TSource>(IEnumerable<TSource>, Action<TSource>)

Ejecuta una operación foreach (For Each en Visual Basic) en IEnumerable, en la que es posible ejecutar iteraciones en paralelo.

ForEach<TSource>(IEnumerable<TSource>, ParallelOptions, Action<TSource,ParallelLoopState,Int64>)

Ejecuta una operación foreach (For Each in Visual Basic) con índices de 64 bits en IEnumerable donde se pueden ejecutar iteraciones en paralelo y configurar opciones de bucle, y el estado del bucle se puede supervisar y manipular.

ForEach<TSource>(IEnumerable<TSource>, ParallelOptions, Action<TSource,ParallelLoopState>)

Ejecuta una operación foreach (For Each en Visual Basic) en IEnumerable donde se pueden ejecutar iteraciones en paralelo y configurar opciones de bucle, y el estado del bucle se puede supervisar y manipular.

ForEach<TSource>(IEnumerable<TSource>, ParallelOptions, Action<TSource>)

Ejecuta una operación foreach (For Each en Visual Basic) en IEnumerable donde se pueden ejecutar iteraciones en paralelo y configurar las opciones de bucle.

ForEach<TSource>(OrderablePartitioner<TSource>, Action<TSource,ParallelLoopState,Int64>)

Ejecuta una operación foreach (For Each en Visual Basic) en OrderablePartitioner<TSource> donde se pueden ejecutar iteraciones en paralelo, y el estado del bucle se puede supervisar y manipular.

ForEach<TSource>(OrderablePartitioner<TSource>, ParallelOptions, Action<TSource,ParallelLoopState,Int64>)

Ejecuta una operación foreach (For Each en Visual Basic) en OrderablePartitioner<TSource> donde se pueden ejecutar iteraciones en paralelo y configurar opciones de bucle, y el estado del bucle se puede supervisar y manipular.

ForEach<TSource>(Partitioner<TSource>, Action<TSource,ParallelLoopState>)

Ejecuta una operación foreach (For Each en Visual Basic) en Partitioner donde se pueden ejecutar iteraciones en paralelo, y el estado del bucle se puede supervisar y manipular.

ForEach<TSource>(Partitioner<TSource>, Action<TSource>)

Ejecuta una operación foreach (For Each en Visual Basic) en Partitioner, en la que es posible ejecutar iteraciones en paralelo.

ForEach<TSource>(Partitioner<TSource>, ParallelOptions, Action<TSource,ParallelLoopState>)

Ejecuta una operación foreach (For Each en Visual Basic) en Partitioner donde se pueden ejecutar iteraciones en paralelo y configurar opciones de bucle, y el estado del bucle se puede supervisar y manipular.

ForEach<TSource>(Partitioner<TSource>, ParallelOptions, Action<TSource>)

Ejecuta una operación foreach (For Each en Visual Basic) en Partitioner donde se pueden ejecutar iteraciones en paralelo y configurar las opciones de bucle.

ForEachAsync<TSource>(IAsyncEnumerable<TSource>, CancellationToken, Func<TSource,CancellationToken,ValueTask>)

Ejecuta una for-each operación en un IEnumerable<T> en el que se pueden ejecutar iteraciones en paralelo.

ForEachAsync<TSource>(IAsyncEnumerable<TSource>, Func<TSource,CancellationToken,ValueTask>)

Ejecuta una for-each operación en un IEnumerable<T> en el que se pueden ejecutar iteraciones en paralelo.

ForEachAsync<TSource>(IAsyncEnumerable<TSource>, ParallelOptions, Func<TSource,CancellationToken,ValueTask>)

Ejecuta una for-each operación en un IEnumerable<T> en el que se pueden ejecutar iteraciones en paralelo.

ForEachAsync<TSource>(IEnumerable<TSource>, CancellationToken, Func<TSource,CancellationToken,ValueTask>)

Ejecuta una for-each operación en un IEnumerable<T> en el que se pueden ejecutar iteraciones en paralelo.

ForEachAsync<TSource>(IEnumerable<TSource>, Func<TSource,CancellationToken,ValueTask>)

Ejecuta una for-each operación en un IEnumerable<T> en el que se pueden ejecutar iteraciones en paralelo.

ForEachAsync<TSource>(IEnumerable<TSource>, ParallelOptions, Func<TSource,CancellationToken,ValueTask>)

Ejecuta una for-each operación en un IEnumerable<T> en el que se pueden ejecutar iteraciones en paralelo.

Invoke(Action[])

Ejecuta cada una de las acciones proporcionadas, posiblemente en paralelo.

Invoke(ParallelOptions, Action[])

Ejecuta todas las acciones proporcionadas, posiblemente en paralelo, a menos que el usuario cancele la operación.

Se aplica a

Seguridad para subprocesos

Todos los miembros públicos y protegidos de Parallel son seguros para subprocesos y se pueden usar simultáneamente desde varios subprocesos.

Consulte también