Parallel Klasse

Definition

Bietet Unterstützung für parallele Schleifen und Regionen.

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

Beispiele

In diesem Beispiel werden verschiedene Ansätze zum Implementieren einer parallelen Schleife mithilfe mehrerer Sprachkonstrukte veranschaulicht.

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

Hinweise

Die Parallel Klasse stellt bibliotheksbasierte Daten parallele Ersetzungen für allgemeine Vorgänge bereit, z. B. für Schleifen, für jede Schleife und die Ausführung einer Reihe von Anweisungen.

Methoden

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

Führt eine for Schleife aus, in der Iterationen parallel ausgeführt werden können und der Zustand der Schleife überwacht und bearbeitet werden kann.

For(Int32, Int32, Action<Int32>)

Führt eine for Schleife aus, in der Iterationen parallel ausgeführt werden können.

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

Führt eine for Schleife aus, in der Iterationen parallel ausgeführt werden können, Schleifenoptionen konfiguriert werden können, und der Zustand der Schleife kann überwacht und bearbeitet werden.

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

Führt eine for Schleife aus, in der Iterationen in Parallel- und Schleifenoptionen ausgeführt werden können.

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

Führt eine for Schleife mit 64-Bit-Indizes aus, in denen Iterationen parallel ausgeführt werden können und der Zustand der Schleife überwacht und bearbeitet werden kann.

For(Int64, Int64, Action<Int64>)

Führt eine for Schleife mit 64-Bit-Indizes aus, in denen Iterationen parallel ausgeführt werden können.

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

Führt eine for Schleife mit 64-Bit-Indizes aus, in denen Iterationen parallel ausgeführt werden können, Schleifenoptionen können konfiguriert werden, und der Zustand der Schleife kann überwacht und bearbeitet werden.

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

Führt eine for Schleife mit 64-Bit-Indizes aus, in denen Iterationen in Parallel- und Schleifenoptionen ausgeführt werden können.

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

Führt eine for Schleife mit threadlokalen Daten aus, in denen Iterationen parallel ausgeführt werden können, und der Zustand der Schleife kann überwacht und bearbeitet werden.

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

Führt eine for Schleife mit threadlokalen Daten aus, in denen Iterationen parallel ausgeführt werden können, Schleifenoptionen können konfiguriert werden, und der Zustand der Schleife kann überwacht und bearbeitet werden.

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

Führt eine for Schleife mit 64-Bit-Indizes und threadlokalen Daten aus, in denen Iterationen parallel ausgeführt werden können, und der Zustand der Schleife kann überwacht und bearbeitet werden.

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

Führt eine for Schleife mit 64-Bit-Indizes und threadlokalen Daten aus, in denen Iterationen parallel ausgeführt werden können, Schleifenoptionen können konfiguriert werden, und der Zustand der Schleife kann überwacht und bearbeitet werden.

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

Führt einen foreach -Vorgang (For Each in Visual Basic) mit threadlokalen Daten in einem IEnumerable aus, in dem Iterationen parallel ausgeführt werden können und der Zustand der Schleife überwacht und bearbeitet werden kann.

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

Führt einen foreach (For Each in Visual Basic) mit threadlokalen Daten in einem IEnumerable aus, in dem Iterationen parallel ausgeführt werden können, und der Zustand der Schleife kann überwacht und bearbeitet werden.

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

Führt einen foreach (For Each in Visual Basic) mit threadlokalen Daten und 64-Bit-Indizes für eine IEnumerable aus, in der Iterationen parallel ausgeführt werden können, Schleifenoptionen konfiguriert werden können, und der Zustand der Schleife kann überwacht und bearbeitet werden.

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

Führt einen foreach -Vorgang (For Each in Visual Basic) mit threadlokalen Daten in einem IEnumerable aus, in dem Iterationen parallel ausgeführt werden können, Schleifenoptionen konfiguriert werden können, und der Zustand der Schleife kann überwacht und bearbeitet werden.

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

Führt einen foreach -Vorgang (For Each in Visual Basic) mit threadlokalen Daten in einem OrderablePartitioner<TSource> aus, in dem Iterationen parallel ausgeführt werden können, Schleifenoptionen konfiguriert werden können, und der Zustand der Schleife kann überwacht und bearbeitet werden.

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

Führt einen foreach -Vorgang (For Each in Visual Basic) mit 64-Bit-Indizes und mit threadlokalen Daten in einem OrderablePartitioner<TSource> aus, in dem Iterationen parallel ausgeführt werden können, Schleifenoptionen konfiguriert werden können, und der Zustand der Schleife kann überwacht und bearbeitet werden.

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

Führt einen foreach (For Each in Visual Basic) mit threadlokalen Daten in einem Partitioner aus, in dem Iterationen parallel ausgeführt werden können und der Zustand der Schleife überwacht und bearbeitet werden kann.

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

Führt einen foreach -Vorgang (For Each in Visual Basic) mit threadlokalen Daten in einem Partitioner aus, in dem Iterationen parallel ausgeführt werden können, Schleifenoptionen konfiguriert werden können, und der Zustand der Schleife kann überwacht und bearbeitet werden.

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

Führt einen foreach (For Each in Visual Basic) mit 64-Bit-Indizes für eine IEnumerable aus, in der Iterationen parallel ausgeführt werden können, und der Zustand der Schleife kann überwacht und bearbeitet werden.

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

Führt einen foreach (For Each in Visual Basic) Vorgang für eine IEnumerable aus, in der Iterationen parallel ausgeführt werden können, und der Zustand der Schleife kann überwacht und bearbeitet werden.

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

Führt einen foreach -Vorgang (For Each in Visual Basic) für einen IEnumerable aus, in dem Iterationen parallel ausgeführt werden können.

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

Führt einen foreach (For Each in Visual Basic) -Vorgang mit 64-Bit-Indizes für eine IEnumerable aus, in der Iterationen parallel ausgeführt werden können, Schleifenoptionen konfiguriert werden können, und der Zustand der Schleife kann überwacht und bearbeitet werden.

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

Führt einen foreach -Vorgang (For Each in Visual Basic) für eine IEnumerable aus, in der Iterationen parallel ausgeführt werden können, Schleifenoptionen konfiguriert werden können, und der Zustand der Schleife kann überwacht und bearbeitet werden.

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

Führt einen foreach -Vorgang (For Each in Visual Basic) für einen IEnumerable aus, in dem Iterationen in Parallel- und Schleifenoptionen ausgeführt werden können.

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

Führt einen foreach -Vorgang (For Each in Visual Basic) für einen OrderablePartitioner<TSource> aus, in dem Iterationen parallel ausgeführt werden können und der Zustand der Schleife überwacht und bearbeitet werden kann.

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

Führt einen foreach -Vorgang (For Each in Visual Basic) für einen OrderablePartitioner<TSource> aus, in dem Iterationen parallel ausgeführt werden können, Schleifenoptionen konfiguriert werden können, und der Zustand der Schleife kann überwacht und bearbeitet werden.

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

Führt einen foreach (For Each in Visual Basic) für einen Partitioner aus, in dem Iterationen parallel ausgeführt werden können, und der Zustand der Schleife kann überwacht und bearbeitet werden.

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

Führt einen foreach -Vorgang (For Each in Visual Basic) für einen Partitioner aus, in dem Iterationen parallel ausgeführt werden können.

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

Führt einen foreach -Vorgang (For Each in Visual Basic) für einen Partitioner aus, in dem Iterationen parallel ausgeführt werden können, Schleifenoptionen konfiguriert werden können, und der Zustand der Schleife kann überwacht und bearbeitet werden.

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

Führt einen foreach -Vorgang (For Each in Visual Basic) für einen Partitioner aus, in dem Iterationen in Parallel- und Schleifenoptionen ausgeführt werden können.

Invoke(Action[])

Führt jede der bereitgestellten Aktionen aus, möglicherweise parallel.

Invoke(ParallelOptions, Action[])

Führt jede der bereitgestellten Aktionen, möglicherweise parallel, aus, es sei denn, der Vorgang wird vom Benutzer abgebrochen.

Gilt für:

Threadsicherheit

Alle öffentlichen und geschützten Member von Parallel sind threadsicher und können gleichzeitig aus mehreren Threads verwendet werden.

Weitere Informationen