Freigeben über


Parallel Klasse

Definition

Unterstützt parallele Schleifen und Bereiche.

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

Beispiele

In diesem Beispiel werden mehrere Ansätze zum Implementieren einer parallelen Schleife unter Verwendung 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 bietet bibliotheksbasierte datenparallele Ersetzungen für allgemeine Vorgänge, z. B. für Schleifen, für jede Schleifen und die Ausführung einer Reihe von Anweisungen.

Methoden

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

Führt eine for-Schleife aus, in der Iterationen parallel ausgeführt werden können und der Status der Schleife beobachtet 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 und Schleifenoptionen konfiguriert werden können und wo der Status der Schleife beobachtet und bearbeitet werden kann.

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

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

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

Führt eine for-Schleife mit 64-Bit-Indizes aus, in der 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 der 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 der Iterationen parallel ausgeführt und Schleifenoptionen konfiguriert werden können, und der Status der Schleife kann beobachtet und bearbeitet werden.

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

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

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

Führt eine for-Schleife mit lokalen Threaddaten aus, in der Iterationen parallel ausgeführt und der Status der Schleife beobachtet und bearbeitet werden können.

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

Führt eine for-Schleife mit lokalen Threaddaten aus, in der Iterationen parallel ausgeführt, Schleifenoptionen konfiguriert und der Status der Schleife beobachtet und bearbeitet werden können.

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

Führt eine for-Schleife mit 64-Bit-Indizes sowie lokalen Threaddaten aus, in denen Iterationen parallel ausgeführt werden können, und der Status der Schleife kann beobachtet 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 Thread-lokalen Daten aus. Iterationen können parallel ablaufen. Schleifenoptionen sind konfigurierbar, und der Schleifenstatus kann beobachtet und manipuliert werden.

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

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

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

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

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

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

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 für einen IEnumerable aus. Iterationen können parallel ablaufen. Der Schleifenstatus kann beobachtet und manipuliert werden.

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

Führt einen foreach-Vorgang (For Each in Visual Basic) mit threadlokalen Daten für einen IEnumerable aus. Iterationen können parallel ablaufen. Der Schleifenstatus kann beobachtet und manipuliert werden.

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

Führt einen foreach-Vorgang (For Each in Visual Basic) mit threadlokalen Daten und 64-Bit-Indizes für einen IEnumerable aus. Iterationen können parallel ablaufen. Schleifenoptionen sind konfigurierbar. Der Schleifenstatus kann beobachtet und manipuliert 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 für einen IEnumerable aus. Iterationen können parallel ablaufen. Schleifenoptionen sind konfigurierbar. Der Schleifenstatus kann überwacht und angepasst 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 für einen OrderablePartitioner<TSource> aus. Iterationen können parallel ablaufen. Schleifenoptionen sind konfigurierbar. Der Schleifenstatus kann beobachtet und manipuliert werden.

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

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

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

Führt einen foreach-Vorgang (For Each in Visual Basic) mit threadlokalen Daten für einen Partitioner aus. Iterationen können parallel ablaufen. Der Schleifenstatus kann beobachtet und manipuliert werden.

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 für einen Partitioner aus. Iterationen können parallel ablaufen. Schleifenoptionen sind konfigurierbar. Der Schleifenstatus kann beobachtet und manipuliert werden.

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

Führt einen foreach-Vorgang (For Each in Visual Basic) mit 64-Bit-Indizes für einen IEnumerable aus. Iterationen können parallel ausgeführt werden. Der Schleifenzustand kann beobachtet und manipuliert werden.

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

Führt einen foreach-Vorgang (For Each in Visual Basic) mit einem IEnumerable aus. Iterationen können parallel ablaufen. Der Schleifenstatus kann beobachtet und manipuliert werden.

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

Führt einen foreach-Vorgang (For Each in Visual Basic) mit einem IEnumerable aus. Iterationen können parallel ablaufen.

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

Führt einen foreach-Vorgang (For Each in Visual Basic) mit 64-Bit-Indizes für einen IEnumerable aus. Iterationen können parallel ablaufen. Schleifenoptionen sind konfigurierbar. Der Schleifenstatus kann beobachtet und manipuliert werden.

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

Führt einen foreach-Vorgang (For Each in Visual Basic) für ein IEnumerable-Objekt aus. Iterationen können parallel ablaufen. Schleifenoptionen sind konfigurierbar. Der Schleifenstatus kann beobachtet und manipuliert werden.

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

Führt einen foreach-Vorgang (For Each in Visual Basic) für ein IEnumerable-Objekt aus. Iterationen können parallel ablaufen. Schleifenoptionen sind konfigurierbar.

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

Führt einen foreach-Vorgang (For Each in Visual Basic) mit einem OrderablePartitioner<TSource> aus. Iterationen können parallel ablaufen, und der Schleifenstatus kann beobachtet und manipuliert werden.

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

Führt einen foreach-Vorgang (For Each in Visual Basic) mit einem OrderablePartitioner<TSource> aus. Iterationen können parallel ablaufen, Schleifenoptionen sind konfigurierbar, und der Schleifenstatus kann beobachtet und manipuliert werden.

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

Führt einen foreach-Vorgang (For Each in Visual Basic) mit einem Partitioner aus. Iterationen können parallel ablaufen, und der Schleifenstatus kann beobachtet und manipuliert werden.

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

Führt einen foreach-Vorgang (For Each in Visual Basic) für ein Partitioner-Objekt 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) mit einem Partitioner aus. Iterationen können parallel ablaufen, Schleifenoptionen sind konfigurierbar, und der Schleifenstatus kann beobachtet und manipuliert werden.

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

Führt einen foreach-Vorgang (For Each in Visual Basic) mit einem Partitioner aus. Iterationen können parallel ausgeführt werden, Schleifenoptionen sind konfigurierbar.

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

Führt einen Vorgang für einen for-eachIEnumerable<T> aus, in dem Iterationen parallel ausgeführt werden können.

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

Führt einen Vorgang für einen for-eachIEnumerable<T> aus, in dem Iterationen parallel ausgeführt werden können.

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

Führt einen Vorgang für einen for-eachIEnumerable<T> aus, in dem Iterationen parallel ausgeführt werden können.

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

Führt einen Vorgang für einen for-eachIEnumerable<T> aus, in dem Iterationen parallel ausgeführt werden können.

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

Führt einen Vorgang für einen for-eachIEnumerable<T> aus, in dem Iterationen parallel ausgeführt werden können.

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

Führt einen Vorgang für einen for-eachIEnumerable<T> aus, in dem Iterationen parallel ausgeführt werden können.

Invoke(Action[])

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

Invoke(ParallelOptions, Action[])

Führt die einzelnen bereitgestellten Aktionen (nach Möglichkeit 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 von mehreren Threads verwendet werden.

Weitere Informationen