次の方法で共有


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 に対して、イテレーションが並列で実行される可能性があり、ループの状態を監視および操作できる、スレッド ローカル データを持つ For Each (Visual Basic の場合は 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>)

IEnumerable に対して、イテレーションが並列で実行される可能性があり、ループ オプションを構成でき、ループの状態を監視および操作できる、スレッド ローカル データと 64 ビットのインデックスを持つ foreach (Visual Basic の場合は For Each) 操作を実行します。

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

IEnumerable に対して、イテレーションが並列で実行される可能性があり、ループ オプションを構成でき、ループの状態を監視および操作できる、スレッド ローカル データを持つ foreach (Visual Basic の場合は For Each) 操作を実行します。

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

foreach に対して、イテレーションが並列で実行される可能性があり、ループ オプションを構成でき、ループの状態を監視および操作できる、スレッド ローカル データを持つ For Each (Visual Basic の場合は OrderablePartitioner<TSource>) 操作を実行します。

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

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

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

foreach に対して、イテレーションが並列で実行される可能性があり、ループの状態を監視および操作できる、スレッド ローカル データを持つ For Each (Visual Basic の場合は Partitioner) 操作を実行します。

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

foreach に対して、イテレーションが並列で実行される可能性があり、ループ オプションを構成でき、ループの状態を監視および操作できる、スレッド ローカル データを持つ For Each (Visual Basic の場合は Partitioner) 操作を実行します。

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

IEnumerable に対して、イテレーションが並列で実行される可能性があり、ループの状態を監視および操作できる、64 ビットのインデックスを持つ foreach (Visual Basic の場合は For Each) 操作を実行します。

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>)

IEnumerable に対して、イテレーションが並列で実行される可能性があり、ループ オプションを構成できる foreach (Visual Basic の場合は For Each) 操作を実行します。

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

foreach に対して、イテレーションが並列で実行される可能性があり、ループの状態を監視および操作できる For Each (Visual Basic の場合は OrderablePartitioner<TSource>) 操作を実行します。

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

foreach に対して、イテレーションが並列で実行される可能性があり、ループ オプションを構成でき、ループの状態を監視および操作できる For Each (Visual Basic の場合は OrderablePartitioner<TSource>) 操作を実行します。

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

Partitioner に対して、イテレーションが並列で実行される可能性があり、ループの状態を監視および操作できる foreach (Visual Basic の場合は For Each) 操作を実行します。

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

foreach に対して、イテレーションが並列で実行される可能性のある For Each (Visual Basic の場合は Partitioner) 操作を実行します。

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

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

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

Partitioner に対して、イテレーションが並列で実行される可能性があり、ループ オプションを構成できる foreach (Visual Basic の場合は For Each) 操作を実行します。

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

イテレーションが for-each 並列で実行される 可能性がある に対 IEnumerable<T> して操作を実行します。

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

イテレーションが for-each 並列で実行される 可能性がある に対 IEnumerable<T> して操作を実行します。

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

イテレーションが for-each 並列で実行される 可能性がある に対 IEnumerable<T> して操作を実行します。

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

イテレーションが for-each 並列で実行される 可能性がある に対 IEnumerable<T> して操作を実行します。

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

イテレーションが for-each 並列で実行される 可能性がある に対 IEnumerable<T> して操作を実行します。

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

イテレーションが for-each 並列で実行される 可能性がある に対 IEnumerable<T> して操作を実行します。

Invoke(Action[])

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

Invoke(ParallelOptions, Action[])

操作がユーザーによって取り消されていない限り、指定された各アクションを実行します。アクションは並列で実行される可能性があります。

適用対象

スレッド セーフ

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

こちらもご覧ください