Parallel クラス

定義

並列ループとリージョンのサポートを提供します。

public ref class Parallel abstract sealed
public static class Parallel
type Parallel = class
Public Class Parallel
継承
Parallel

この例では、複数の言語コンストラクトを使用して並列ループを実装するいくつかの方法を示します。

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

注釈

Parallel クラスは、for ループ、各ループ、一連のステートメントの実行などの一般的な操作のライブラリ ベースのデータ並列置換を提供します。

メソッド

名前 説明
For(Int32, Int32, Action<Int32,ParallelLoopState>)

反復処理が並列で実行され、ループの状態を監視および操作できる for ループを実行します。

For(Int32, Int32, Action<Int32>)

イテレーションを並列で実行できる for ループを実行します。

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

イテレーションを並列で実行できる for ループを実行し、ループ オプションを構成し、ループの状態を監視および操作できます。

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

イテレーションが並列で実行され、ループ オプションを構成できる for ループを実行します。

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

64 ビット インデックスを持つ for ループを実行します。この場合、反復処理が並列で実行され、ループの状態を監視および操作できます。

For(Int64, Int64, Action<Int64>)

64 ビット インデックスを持つ for ループを実行します。このループでは、反復処理が並列で実行される可能性があります。

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

64 ビット インデックスを持つ for ループを実行します。この場合、イテレーションを並列で実行したり、ループ オプションを構成したり、ループの状態を監視および操作したりできます。

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

反復が並列で実行され、ループ オプションを構成できる 64 ビット インデックスを持つ for ループを実行します。

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

スレッド ローカル データを使用して for ループを実行します。この場合、反復処理が並列で実行され、ループの状態を監視および操作できます。

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

スレッド ローカル データを使用して for ループを実行します。このデータでは、イテレーションが並列で実行され、ループ オプションを構成でき、ループの状態を監視および操作できます。

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

64 ビット インデックスとスレッド ローカル データを含む for ループを実行します。このデータでは、反復処理が並列で実行され、ループの状態を監視および操作できます。

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

64 ビット インデックスとスレッド ローカル データを含む for ループを実行します。このデータでは、反復処理が並列で実行され、ループ オプションを構成でき、ループの状態を監視および操作できます。

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

イテレーションが並列で実行される for ループを実行します。

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

イテレーションが並列で実行される for ループを実行します。

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

イテレーションが並列で実行される for ループを実行します。

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

foreach (Visual Basic では For Each) 操作を実行します。この操作は、反復処理が並列で実行され、ループの状態を監視および操作できる、IEnumerable 上のスレッド ローカル データを使用します。

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

反復処理が並列に実行され、ループの状態を監視および操作できる foreach 上のスレッド ローカル データを使用して、For Each (Visual Basic のIEnumerable) 操作を実行します。

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

スレッド ローカル データと 64 ビット インデックスを使用して、foreach (Visual Basic のFor Each) 操作を実行します。この操作では、IEnumerable で反復処理を並列で実行でき、ループ オプションを構成でき、ループの状態を監視および操作できます。

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

foreach (Visual Basic では For Each) 操作を実行します。スレッド ローカル データは、IEnumerable で並列実行でき、ループ オプションを構成でき、ループの状態を監視および操作できます。

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

foreach (Visual Basic では For Each) 操作を実行します。この操作は、反復処理が並列で実行される可能性がある OrderablePartitioner<TSource> 上のスレッド ローカル データを使用して実行され、ループ オプションを構成でき、ループの状態を監視および操作できます。

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

64 ビット インデックスを使用し、foreach (Visual Basic では For Each) 操作を実行し、OrderablePartitioner<TSource> でスレッド ローカル データを使用して反復処理を並列実行し、ループ オプションを構成し、ループの状態を監視および操作できます。

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

foreach (Visual Basic では For Each) 操作を実行します。この操作は、反復処理が並列で実行され、ループの状態を監視および操作できる、Partitioner 上のスレッド ローカル データを使用します。

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

foreach (Visual Basic では For Each) 操作を実行します。この操作は、反復処理が並列で実行される可能性がある Partitioner 上のスレッド ローカル データを使用して実行され、ループ オプションを構成でき、ループの状態を監視および操作できます。

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

foreach (Visual Basic では For Each) 操作を実行します。IEnumerable で 64 ビット インデックスを使用して反復処理を並列実行でき、ループの状態を監視および操作できます。

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

反復処理が並列で実行される可能性があり、ループの状態を監視および操作できるforeachに対して、For Each (Visual Basic のIEnumerable) 操作を実行します。

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

反復処理を並列で実行できるforeachに対して、For Each (Visual Basic のIEnumerable) 操作を実行します。

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

foreach で 64 ビット インデックスを使用して For Each (Visual Basic のIEnumerable) 操作を実行します。この操作では、反復処理を並列で実行でき、ループ オプションを構成でき、ループの状態を監視および操作できます。

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

反復処理が並列で実行される可能性があり、ループ オプションを構成し、ループの状態を監視および操作できるforeachに対して、For Each (Visual Basic のIEnumerable) 操作を実行します。

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

反復処理を並列で実行し、ループ オプションを構成できる foreach に対して、For Each (Visual Basic では IEnumerable) 操作を実行します。

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

反復処理が並列で実行され、ループの状態を監視および操作できる foreach に対して、For Each (Visual Basic のOrderablePartitioner<TSource>) 操作を実行します。

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

foreachFor Each (Visual BasicのOrderablePartitioner<TSource>) 操作を実行します。この操作では、反復処理を並列で実行したり、ループ オプションを構成したり、ループの状態を監視および操作したりできます。

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

(Visual Basic では ) 操作をで実行します。この操作では、反復処理を並列で実行でき、ループの状態を監視および操作できます。 <

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

反復処理が並列で実行される可能性がある foreach に対して、For Each (Visual Basic では Partitioner) 操作を実行します。

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

foreachFor Each (Visual BasicのPartitioner) 操作を実行します。この操作では、反復処理を並列で実行したり、ループ オプションを構成したり、ループの状態を監視および操作したりできます。

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

反復処理を並列で実行し、ループ オプションを構成できる foreach に対して、For Each (Visual Basic のPartitioner) 操作を実行します。

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

イテレーションを並列で実行できるIEnumerable<T>に対してfor-each操作を実行します。

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

イテレーションを並列で実行できるIEnumerable<T>に対してfor-each操作を実行します。

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

イテレーションを並列で実行できるIEnumerable<T>に対してfor-each操作を実行します。

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

イテレーションを並列で実行できるIEnumerable<T>に対してfor-each操作を実行します。

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

イテレーションを並列で実行できるIEnumerable<T>に対してfor-each操作を実行します。

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

イテレーションを並列で実行できるIEnumerable<T>に対してfor-each操作を実行します。

Invoke(Action[])

指定された各アクション (場合によっては並列で) を実行します。

Invoke(ParallelOptions, Action[])

ユーザーが操作を取り消さない限り、指定された各アクションを並列で実行します。

適用対象

スレッド セーフ

Parallelのすべてのパブリック メンバーとプロテクト メンバーはスレッド セーフであり、複数のスレッドから同時に使用できます。

こちらもご覧ください