Parallel Classe

Definizione

Fornisce supporto per aree e cicli in parallelo.

public ref class Parallel abstract sealed
public static class Parallel
type Parallel = class
Public Class Parallel
Ereditarietà
Parallel

Esempio

Questo esempio illustra diversi approcci all'implementazione di un ciclo parallelo usando più costrutti di linguaggio.

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

Commenti

La Parallel classe fornisce sostituzioni parallele dei dati basate su libreria per operazioni comuni, ad esempio cicli for, per ogni ciclo ed esecuzione di un set di istruzioni.

Metodi

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

Esegue un ciclo for in cui le iterazioni possono essere eseguite in parallelo e lo stato del ciclo può essere monitorato e modificato.

For(Int32, Int32, Action<Int32>)

Esegue un ciclo for in cui le iterazioni possono essere eseguite in parallelo.

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

Esegue un ciclo for in cui le iterazioni possono essere eseguite in parallelo, è possibile configurare le opzioni del ciclo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un ciclo for in cui le iterazioni possono essere eseguite in parallelo ed è possibile configurare le opzioni del ciclo.

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

Esegue un ciclo forcon gli indici a 64 bit in cui le iterazioni possono essere eseguite in parallelo e lo stato del ciclo può essere monitorato e manipolato.

For(Int64, Int64, Action<Int64>)

Esegue un ciclo for con indici a 64 bit in cui le iterazioni possono essere eseguite in parallelo.

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

Esegue un ciclo for con indici a 64 bit in cui le iterazioni possono essere eseguite in parallelo, è possibile configurare le opzioni del ciclo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un ciclo for con indici a 64 bit in cui è possibile eseguire le iterazioni in parallelo e configurare le opzioni del ciclo.

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

Esegue un ciclo for con dati locali del thread in cui le iterazioni possono essere eseguite in parallelo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un ciclo for con dati locali del thread in cui le iterazioni possono essere eseguite in parallelo, è possibile configurare le opzioni di ciclo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un ciclo for con indici a 64 bit e dati locali del thread in cui le iterazioni possono essere eseguite in parallelo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un ciclo for con indici a 64 bit e dati locali del thread in cui le iterazioni possono essere eseguite in parallelo, è possibile configurare le opzioni del ciclo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un ciclo for in cui le iterazioni possono essere eseguite in parallelo.

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

Esegue un ciclo for in cui le iterazioni possono essere eseguite in parallelo.

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

Esegue un ciclo for in cui le iterazioni possono essere eseguite in parallelo.

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

Esegue un'operazione foreach (For Each in Visual Basic) con dati locali del thread su un oggetto IEnumerable nel quale le iterazioni possono essere eseguite in parallelo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un'operazione foreach (For Each in Visual Basic) con dati locali del thread su un oggetto IEnumerable nel quale le iterazioni possono essere eseguite in parallelo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un'operazione foreach (For Each in Visual Basic) con dati locali del thread e indici a 64 bit su un oggetto IEnumerable nel quale le iterazioni possono essere eseguite in parallelo, è possibile configurare le opzioni di ciclo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un'operazione foreach (For Each in Visual Basic) con dati locali del thread su un oggetto IEnumerable nel quale le iterazioni possono essere eseguite in parallelo, è possibile configurare le opzioni di ciclo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un'operazione foreach (For Each in Visual Basic) con dati locali del thread su un oggetto OrderablePartitioner<TSource> nel quale le iterazioni possono essere eseguite in parallelo, è possibile configurare le opzioni di ciclo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un'operazione foreach (For Each in Visual Basic) con indici a 64 bit e con dati locali del thread in un OrderablePartitioner<TSource> oggetto in cui le iterazioni possono essere eseguite in parallelo, le opzioni del ciclo possono essere configurate e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un'operazione foreach (For Each in Visual Basic) con dati locali del thread su un oggetto Partitioner nel quale le iterazioni possono essere eseguite in parallelo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un'operazione foreach (For Each in Visual Basic) con dati locali del thread su un oggetto Partitioner nel quale le iterazioni possono essere eseguite in parallelo, è possibile configurare le opzioni di ciclo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un'operazione foreach (For Each in Visual Basic) con indici a 64 bit su un oggetto IEnumerable nel quale le iterazioni possono essere eseguite in parallelo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un'operazione foreach (For Each in Visual Basic) su un oggetto IEnumerable nel quale le iterazioni possono essere eseguite in parallelo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un'operazione foreach (For Each in Visual Basic) su un oggetto IEnumerable in cui le iterazioni possono essere eseguite in parallelo.

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

Esegue un'operazione foreach (For Each in Visual Basic) con indici a 64 bit su un oggetto IEnumerable nel quale le iterazioni possono essere eseguite in parallelo, è possibile configurare le opzioni di ciclo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un'operazione foreach (For Each in Visual Basic) su un oggetto IEnumerable nel quale le iterazioni possono essere eseguite in parallelo, è possibile configurare le opzioni di ciclo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un'operazione foreach (For Each in Visual Basic) su un oggetto IEnumerable nel quale le iterazioni possono essere eseguite in parallelo ed è possibile configurare le opzioni di ciclo.

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

Esegue un'operazione foreach (For Each in Visual Basic) su un oggetto OrderablePartitioner<TSource> nel quale le iterazioni possono essere eseguite in parallelo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un'operazione foreach (For Each in Visual Basic) su un oggetto OrderablePartitioner<TSource> nel quale le iterazioni possono essere eseguite in parallelo, è possibile configurare le opzioni di ciclo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un'operazione foreach (For Each in Visual Basic) su un oggetto Partitioner nel quale le iterazioni possono essere eseguite in parallelo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un'operazione foreach (For Each in Visual Basic) su un oggetto Partitioner in cui le iterazioni possono essere eseguite in parallelo.

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

Esegue un'operazione foreach (For Each in Visual Basic) su un oggetto Partitioner nel quale le iterazioni possono essere eseguite in parallelo, è possibile configurare le opzioni di ciclo e lo stato del ciclo può essere monitorato e modificato.

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

Esegue un'operazione foreach (For Each in Visual Basic) su un oggetto Partitioner nel quale le iterazioni possono essere eseguite in parallelo ed è possibile configurare le opzioni di ciclo.

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

Esegue un'operazione for-each su un IEnumerable<T> oggetto in cui le iterazioni possono essere eseguite in parallelo.

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

Esegue un'operazione for-each su un IEnumerable<T> oggetto in cui le iterazioni possono essere eseguite in parallelo.

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

Esegue un'operazione for-each su un IEnumerable<T> oggetto in cui le iterazioni possono essere eseguite in parallelo.

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

Esegue un'operazione for-each su un IEnumerable<T> oggetto in cui le iterazioni possono essere eseguite in parallelo.

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

Esegue un'operazione for-each su un IEnumerable<T> oggetto in cui le iterazioni possono essere eseguite in parallelo.

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

Esegue un'operazione for-each su un IEnumerable<T> oggetto in cui le iterazioni possono essere eseguite in parallelo.

Invoke(Action[])

Esegue ognuna delle azioni fornite, eventualmente in parallelo.

Invoke(ParallelOptions, Action[])

Esegue ciascuna delle azioni fornite, possibilmente in parallelo, a meno che l'operazione non venga annullata dall'utente.

Si applica a

Thread safety

Tutti i membri pubblici e protetti di Parallel sono thread-safe e possono essere usati simultaneamente da più thread.

Vedi anche